三種場景
● 最佳字段 (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。輸...