單字串多欄位查詢 Multi Match

2021-10-04 17:25:15 字數 1617 閱讀 7083

三種場景

● 最佳字段 (best fields)

● 當欄位之間相互競爭,⼜相互關聯。例如 title 和 body 這樣的字段。評分來⾃最匹配字段

● 多數字段 (most fields)

● 處理英⽂內容時:⼀種常⻅的⼿段是,在主欄位( english analyzer),抽取詞⼲,加⼊同義詞,以

匹配更多的⽂檔。相同的⽂本,加⼊⼦字段(standard analyzer),以提供更加精確的匹配。其他字

段作為匹配⽂檔提⾼相關度的訊號。匹配欄位越多則越好

● 混合字段 (cross field)

● 對於某些實體,例如⼈名,位址,圖書資訊。需要在多個欄位中確定資訊,單個字段只能作為整體

的⼀部分。希望在任何這些列出的字段中找到盡可能多的詞

post blogs/_search}}

,

"hits" : ,

"max_score" : 0.8151411,

"hits" : [},}

]}}

英⽂分詞器,導致精確度降低,時態資訊丟失

get /title1s/_search}}

,

"hits" : ,

"max_score" : 0.42221838,

"hits" : [},}

]}}

-id=1的得分比_id=2的高,不符合要求

⽤⼴度匹配字段 title 包括盡可能多的⽂檔——以提

公升召回率——同時⼜使⽤字段 title.std 作為訊號 將

相關度更⾼的⽂檔置於結果頂部

英文分詞器可以提高rescore的值,standard分詞器可以提高搜尋的精度

,

"hits" : ,

"max_score" : 1.4569323,

"hits" : [},}

]}}

每個字段對於最終評分的貢獻可以通過⾃定義

值 boost 來控制。⽐如,使 title 字段更為重要,

這樣同時也降低了其他訊號欄位的作⽤:

get /titles/_search}}

,

"hits" : ,

"max_score" : 4.344906,

"hits" : [},}

]}}

post adress/_search

}

,

"hits" : ,

"max_score" : null,

"hits" : [ ]

}}

跨欄位搜尋

當查詢乙個物件的時候

像上面的例子無法通過新增oparater

可以⽤ copy_to 解決,但是需要增加新的字段增加了額外的

儲存空間

post adress/_search}}

,

"hits" : ,

"max_score" : 0.5469647,

"hits" : [}]

}}

單字串查詢

put my index my type 1 put my index my type 2 現在執行以下bool查詢 但是我們發現查詢的結果是文件 1 的評分更高 為了理解導致這樣的原因,需要回想一下bool是如何計算評分的 它會執行should語句中的兩個查詢。加和兩個查詢的評分。乘以匹配語句的總...

簡單字串

給你乙個由 0 9 組成的字串s 1 s 的長度 100 和乙個正整數n 1 n 3 我們將所有的 0 都看成空格。這樣你就得到幾個分隔開來的字串。輸出第n個字串。題目保證分隔開來的字串的數量大於等於n。input 第一行輸入正整數t 1 t 100 代表t組測試資料。對於每一組測試資料由一行組成 ...

簡單字串比較

題目描述 請使用字串比較函式,比較兩個字串的大小,並按要求輸出比較後的結果。字串最長不超過15個字元。輸入兩個字串str1和str2,如果第乙個字串與第二個字串相等,輸出str1 str2,如果第乙個字串大於第二個字串,輸出str1 str2,如果第乙個字串小於第二個字串,輸出str1 str2。輸...