elasticsearch認證複習準備
##多欄位搜尋概念
用相同或不同的字串查詢乙個或多個字段
多字串查詢
get /_search},}
]}}}
注:兩條語句同時匹配的文件比只與一條語句匹配的文件得分要高
get /_search
}},}},},}
]}}]}
}}注:should中前兩個語句權重佔到了4/5
最佳字段搜尋
get /_search},}
]}}}
注:將任何與任一查詢匹配的文件作為結果返回,但只將最佳匹配的評分作為查詢的評分結果返回。
get /_search},}
],"tie_breaker": 0.3}}
}注:"tie_breaker": 0.3 ,最佳字段評分為主,其他字段評分為輔。
最佳字段、多數字段、跨字段的簡便寫法
get /_search
}注:和上邊最佳字段寫法效果一樣。
get /_search
}注:欄位名字通配
get /_search
}注:提公升單個字段權重
get /my_index/_search}}
注:多數字段方式,多個字段匹配比單個字段匹配分數更高。權重設定類似。
此方式存在的問題:
a、為多數字段匹配 任意 詞設計的,而不是在 所有字段 中找到最匹配的。——多個字段匹配得分比單個欄位高
b、、不能使用 operator 或 minimum_should_match 引數來降低次相關結果造成的長尾效應。——(效果作用在單個字段匹配的比例,而不是多個語句之間)
c、詞頻對於每個欄位是不一樣的,而且它們之間的相互影響會導致不好的排序結果。——字段之間的詞頻不一樣,會引發排序混亂。
4、詞中心式可以很好解決多欄位(字段中心式)中的問題
put /my_index
,"last_name": ,
"full_name": }}
}}注:多個欄位的資料索引到乙個欄位中,可以消除上述問題。
get /books/_search}}
注:cross_fields將所有字段當成乙個大字段
進行查詢
get /_validate/query?explain}}
注:詞中心式 會使用以下邏輯:
+(first_name:peter last_name:peter)
+(first_name:smith last_name:smith)
get /_validate/query?explain}}
注:字段中心式 會使用以下邏輯:
(+first_name:peter +first_name:smith)
(+last_name:peter +last_name:smith)
3 Elasticsearch深入搜尋 部分匹配
elasticsearch認證複習準備 部分匹配概念 指定查詢詞的一部分並找出所有包含這部分片段的詞。簡單來說就是我輸入elas直接能給我匹配到elasticsearch這個詞。使用場景 匹配郵編 產品序列號或其他 not analyzed 未分析值,這些值可以是以某個特定字首開始,也可以是與某種模...
快取大小 Elasticsearch 快取深入詳解
elasticsearch 查詢的響應需要占用 cpu 記憶體資源,在複雜業務場景,會出現慢查詢,需要花費大量的時間。如何破局呢?增加集群硬體配置會有高昂硬體開銷。還有沒有其他方案呢?這時候會想到 快取。elasticsearch 有哪些快取,不同快取的應用場景是什麼呢?本文給出答案。以上問題都是實...
Elasticsearch 內部資料結構深度解讀
正如 elastic 官方文件所說 elasticsearch 特點之一是 分布式文件儲存。elasticsearch不會將資訊儲存為類似列資料庫的行 row 而是儲存為已序列化為json文件的複雜資料結構。當集群中有多個elasticsearch節點時,儲存的文件會分布在整個集群中,並且可以從任何...