ElasticSeach基本查詢

2021-10-05 08:30:14 字數 814 閱讀 2977

結構化查詢(dsl)

match(分詞匹配)

查詢和"我的寶馬多少馬力"這個查詢語句匹配的文件

} } }

語句"我的寶馬多少馬力"進行分詞後搜尋,並且根據lucene的評分機制(tf/idf)來進行評分。

match_phrase(都包含)

比如上面乙個例子,乙個文件"我的保時捷馬力不錯"也會被搜尋出來,那麼想要精確匹配所有同時包含"寶馬 多少 馬力"的文件怎麼做?就要使用 match_phrase 了

} } }

multi_match

如果我們希望兩個字段進行匹配,其中乙個欄位有這個文件就滿足的話,使用multi_match

} }但是multi_match就涉及到匹配評分的問題了。

我們希望完全匹配的文件佔的評分比較高,則需要使用best_fields

} }意思就是完全匹配"寶馬 發動機"的文件評分會比較靠前,如果只匹配寶馬的文件評分乘以0.3的係數

tie_breaker引數改變分值計算過程:

取得最佳匹配查詢子句的_score。

將其它每個匹配的子句的分值乘以tie_breaker。

將以上得到的分值進行累加並規範化。

取0時即為僅使用最佳匹配子句,取1則會將所有匹配的子句一視同仁

我們希望越多字段匹配的文件評分越高,就要使用most_fields

} }這個詞條的分詞詞彙是分配到不同欄位中,那麼就用cross_fields

} }【term】

term是代表完全匹配,即不進行分詞器分析,文件中必須包含整個搜尋的詞彙

} }查出的所有文件都包含"汽車保養"這個片語的詞彙。

Elasticseach之文件所在分片

elasticseach的分片有很多時,如果我想查詢下某個文件當前所在分片,該如何查詢?get saas product batch stock test search shards?routing zhl10184670,zhl10174592,zhl10180859注意routing支援多個,使...

ElasticSeach(二 部署執行)

cluster 集群名稱,同一集群名稱需一致,預設 elasticsearch node 節點名稱,集群內節點名稱需唯一 node.name node 1 自定義屬性 node.attr.rack r1 當前節點是否儲存資料 node.data true 是否是主節點 node.master tru...

xml 讀寫查 基本步驟

saxreader reader new saxreader 獲得解析器 file f new file filename 指定解析檔案 構造文件樹並且返回 document document reader.read f 獲得根元素 element rootelement document.getr...