日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Elasticsearch 搜索不到数据问题(_mapping 设置)

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elasticsearch 搜索不到数据问题(_mapping 设置) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求

由于 kibana3 中,不支持直接在請求的 url 中設置搜索的 type (是不是我不知道???)。

為了支持特定 type 的搜索,所以我設置了個下每個 panel 的查詢語句,讓它增加一個:

"query_string": {"query": " _type:\"my_type\" "}

結果今天在查一個 bug 的時候,發現這樣有一個坑,,,?

問題

由于URL請求的路徑并沒不能指定 type ,所以每一次的搜索,依然會查詢整個 index,只是在獲取結果時候,再 query 了一次 "_type" 字段。

如果在同一個 index 下,存在不同 type 中,某個字段類型不一致的情況,那將可能導致搜索不到想要的結果。(因為不同的 type 有不同的 _mapping)

示例1:我在一個字段第一次存的時候,filed1 存為了 string 類型,而又新建了另一個 type,且 filed1 字段類型變為了 date,

后來在對這個字段進行時間 range 過濾操作的時候,發現總是匹配不到想要的結果,hits 總是空數組,

URL:http://localhost:9200/index/_search {"query": {"filtered": {"query": {"bool": {"should": [{"query_string": {"query": "_type:\"my_type\""}}]}},"filter": {"bool": {"must": [{"range": {"過期時間": {"from": 1860000665,"to": 2550091665}}}]}}}},"from": 0 }

結果1:

{"took": 1,"timed_out": false,"_shards": {"total": 1,"successful": 1,"failed": 0},"hits": {"total": ,"max_score": 1,"hits": [] ......

?

但是,完全相同的查詢語句,如果在 URL 中指定 type,那么過濾就 OK 了,,,

示例2:

URL: http://200.200.194.155:9200/index/my_type/_search {"query": {"filtered": {"query": {"bool": {"should": [{"query_string": {"query": "_type:\"my_type1\""}}]}},"filter": {"bool": {"must": [{"range": {"過期時間": {"from": 1861665,"to": 25500008799861665}}}]}}}},"from": 0 }

結果2:

{"took": 1,"timed_out": false,"_shards": {"total": 1,"successful": 1,"failed": 0},"hits": {"total": 67,"max_score": 1,"hits": [{ ......

?解決

確保相同字段的數據類型一致,,,

比如上面的問題,我刪除了該字段類型為 string 的那個 type 就完全 OK 了。

轉載于:https://www.cnblogs.com/licongyu/p/5315700.html

總結

以上是生活随笔為你收集整理的Elasticsearch 搜索不到数据问题(_mapping 设置)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。