elasticsearch java likequery_ElasticSearch的模糊查询
我是ElasticSearch的新手,我正在探索它的功能 . 我感興趣的其中一個是模糊查詢,我正在測試并且有麻煩使用 . 這可能是一個虛假的問題,所以我猜一個已經使用過這個功能的人會很快找到答案,至少我希望如此 . :)
BTW我覺得它可能不僅與ElasticSearch有關,而且可能直接與Lucene有關 .
讓我們從一個名為“first index”的新索引開始,我在其中存儲一個值為“american football”的對象“label” . 這是我使用的查詢 .
bash-3.2$ curl -XPOST 'http://localhost:9200/firstindex/node/?pretty=true' -d '{
"node" : {
"label" : "american football"
}
}
'
這是我得到的結果 .
{
"ok" : true,
"_index" : "firstindex",
"_type" : "node",
"_id" : "6TXNrLSESYepXPpFWjpl1A",
"_version" : 1
}
到目前為止很好,現在我想使用模糊查詢找到這個條目 . 這是我發送的那個:
bash-3.2$ curl -XGET 'http://localhost:9200/firstindex/node/_search?pretty=true' -d '{
"query" : {
"fuzzy" : {
"label" : {
"value" : "american football",
"boost" : 1.0,
"min_similarity" : 0.0,
"prefix_length" : 0
}
}
}
}
'
這就是我得到的結果
{
"took" : 15,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
如你所見,沒有打擊 . 但現在,當我從“美國 football " to "美國 footb ”這樣收縮我的查詢值時:
bash-3.2$ curl -XGET 'http://localhost:9200/firstindex/node/_search?pretty=true' -d ' {
"query" : {
"fuzzy" : {
"label" : {
"value" : "american footb",
"boost" : 1.0,
"min_similarity" : 0.0,
"prefix_length" : 0
}
}
}
}
'
然后我在我的條目上得到正確的命中,結果是:
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.19178301,
"hits" : [ {
"_index" : "firstindex",
"_type" : "node",
"_id" : "6TXNrLSESYepXPpFWjpl1A",
"_score" : 0.19178301, "_source" : {
"node" : {
"label" : "american football"
}
}
} ]
}
}
所以,我有幾個與此測試相關的問題:
為什么在執行完全等于我的唯一條目“american football ”的查詢時,我沒有得到任何結果
這與我有多字的 Value 有關嗎?
有沒有辦法在我的查詢結果中獲得“相似性”得分,這樣我就能更好地理解如何為模糊查詢找到合適的閾值
在ElasticSearch網站上有一個專門用于模糊查詢的頁面,但我不確定它列出了我可以用于模糊查詢的所有潛在參數 . 我能找到這么詳盡的清單嗎?
實際上其他查詢的問題相同 .
模糊查詢和使用lucene語法進行模糊匹配的查詢字符串查詢之間有區別嗎?
總結
以上是生活随笔為你收集整理的elasticsearch java likequery_ElasticSearch的模糊查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jdk的作用_jdk的作用是什
- 下一篇: java大会主题曲_网易未来大会主题曲发