1 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
查詢是不言自明的。我添加了“haloha_id”來(lái)過(guò)濾塊(不對(duì)文檔評(píng)分),“text”添加到 must 塊(給文檔評(píng)分),“mood”添加到 should block(提升文檔)
{
? "query": {
? ? "bool": {
? ? ? "filter": [
? ? ? ? {
? ? ? ? ? "match": {
? ? ? ? ? ? "haloha_id": "5ecf6bff25a36366cd134db2"
? ? ? ? ? }
? ? ? ? }
? ? ? ],
? ? ? "must": [
? ? ? ? {
? ? ? ? ? "match": {
? ? ? ? ? ? "text": {
? ? ? ? ? ? ? "query": "chilli ",
? ? ? ? ? ? ? "fuzziness": "auto"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? ],
? ? ? "should": [
? ? ? ? {
? ? ? ? ? "term": {
? ? ? ? ? ? "mood": {
? ? ? ? ? ? ? "value": 2
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? ]
? ? }
? }
}
mood:3 中的問(wèn)題比 mood:2(should 子句中的搜索詞)排名更高是由于分片
來(lái)自文檔
如果您注意到兩個(gè)內(nèi)容相同的文檔得到不同的分?jǐn)?shù),或者完全匹配的文檔沒(méi)有排在第一位,那么問(wèn)題可能與分片有關(guān)。默認(rèn)情況下,Elasticsearch 讓每個(gè)分片負(fù)責(zé)生成自己的分?jǐn)?shù)。然而,由于索引統(tǒng)計(jì)信息是得分的重要貢獻(xiàn)者,因此這僅在分片具有相似索引統(tǒng)計(jì)信息時(shí)才有效。假設(shè)是因?yàn)槟J(rèn)情況下文檔被均勻地路由到分片,那么索引統(tǒng)計(jì)數(shù)據(jù)應(yīng)該非常相似并且評(píng)分會(huì)按預(yù)期工作。但是,如果您:
在索引時(shí)使用路由,查詢多個(gè)索引,或者索引中的數(shù)據(jù)太少,那么搜索請(qǐng)求中涉及的所有分片很可能沒(méi)有相似的索引統(tǒng)計(jì)信息,并且相關(guān)性可能很差。
如果您有一個(gè)小數(shù)據(jù)集,解決此問(wèn)題的最簡(jiǎn)單方法是將所有內(nèi)容索引到具有單個(gè)分片 (index.number_of_shards: 1) 的索引中,這是默認(rèn)設(shè)置。那么所有文檔的索引統(tǒng)計(jì)信息都是相同的,并且分?jǐn)?shù)將是一致的。
- 1 回答
- 0 關(guān)注
- 421 瀏覽
添加回答
舉報(bào)