在这台Elasticsearch机器上,我有一个最小尺寸为3的ngram过滤器。
'my_ngram': {
'type': 'nGram',
'max_gram': 50,
'min_gram': 3
},
这非常适合搜索“点心”之类的东西,我会收到有关点心的东西。
然而,当我搜索“牛排”时,由于ngram是如此之低,我得到的结果包含“蒸汽”和“偷”。
将ngram最小值提高到5并重新编制索引后,修复“牛排”返回其他结果,但现在搜索“点心”则不返回任何内容。
正在从python 2.7
运行搜索search = Search(doc_type=('post',), index='sitename')
search = search.query('multi_match', query='dimsum', fields=['title^2', 'content'], operator='and')
response = search.execute()
有谁能告诉我如何调整这一点,以便搜索更加“点”?我不知道其他哪些信息与此相关,但如果需要,我会分享更多信息。