0
我使用彈性搜索新聞文章搜索。如果我搜索「Vlamadir Putin」,那麼它很有用,因爲他有很多新聞,Vlamidir和Putin都不是很受歡迎。但是,如果我搜索「拉賈拉姆」,它不起作用。我有一些「Raja Ram」的文章,但是有一些是「Raja Mohanty」和「Ram Srivastava」。這些文章的排名高於引用「Raja Ram」的文章。我的分詞器或搜索功能有問題嗎?ElasticSearch更多重量到精確匹配
es.indices.create(
index="article-index",
body={
'settings': {
'analysis': {
'analyzer': {
'my_ngram_analyzer' : {
'tokenizer' : 'my_ngram_tokenizer'
}
},
'tokenizer' : {
'my_ngram_tokenizer' : {
'type' : 'nGram',
'min_gram' : '1',
'max_gram' : '50'
}
}
}
}
},
# ignore already existing index
ignore=400
)
res = es.search(index="article-index", fields="url", body={"query": {"query_string": {"query": keywordstr, "fields": ["text", "title", "tags", "domain"]}}})
它工作正常, 。對於「A B C」的搜索,如果「A B C」存在,那應該是很棒的,否則,搜索索引應該比「A」或「B」更加重視「A B」和「B C」。我怎樣才能做到這一點? –
使用查詢字符串和AND運算符的A B c的第一個查詢。這會給你所有三個可能的結果。 1. A B C的匹配詞,2. A和B或B以及C或C以及A. 3. A或B或C.從這些結果中,您可以篩選出每個結果並相應地提升它們。 – harsha
太亂了,如果我們正在處理10個單詞:( –