我使用弹性搜索来搜索新闻文章。如果我搜索“弗拉米迪尔·普京”,它会起作用,因为他经常出现在新闻中,而弗拉米迪尔和普京都不是很受欢迎。但是,如果我搜索“Raja Ram”,它就不起作用。我有几篇关于“Raja Ram”的文章,还有一些关于“Raja Mohanty”和“Ram Srivastava”的文章。这些文章的排名高于引用“Raja Ram”的文章。我的分词器或搜索功能有问题吗?
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"]}}})