Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Elasticsearch低ngram导致额外的不相关结果_Python_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_N Gram - Fatal编程技术网 elasticsearch,n-gram,Python,elasticsearch,N Gram" /> elasticsearch,n-gram,Python,elasticsearch,N Gram" />

Python Elasticsearch低ngram导致额外的不相关结果

Python Elasticsearch低ngram导致额外的不相关结果,python,elasticsearch,n-gram,Python,elasticsearch,N Gram,在这个Elasticsearch机器上,我有一个最小尺寸为3的ngram过滤器 'my_ngram': { 'type': 'nGram', 'max_gram': 50, 'min_gram': 3 }, 这对于搜索像“点心”这样的东西非常有用,在那里我会得到与点心有关的东西 然而,当我搜索“steak”时,由于ngram很低,我会得到包含“steam”和“steal”的结果 在将ngram最小值提高到5并重新编制索引后,修复了“牛排”返回其他结果的问题,但现在搜索“

在这个Elasticsearch机器上,我有一个最小尺寸为3的ngram过滤器

'my_ngram': {
    'type': 'nGram',
    'max_gram': 50,
    'min_gram': 3
},
这对于搜索像“点心”这样的东西非常有用,在那里我会得到与点心有关的东西

然而,当我搜索“steak”时,由于ngram很低,我会得到包含“steam”和“steal”的结果

在将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()

有谁能告诉我如何调整这一点,使搜索更“切中要害”?我不知道还有什么其他信息与此相关,但如果需要,我会分享更多信息。

在搜索过程中尽量不要使用nGram分析器,而只能在索引时使用。在映射中,您需要为
标题
内容
字段指定
“搜索分析器”:“标准”
,以便覆盖索引时启动的
nGram
分析器。您能试一下吗?我没有。有一个时间点,我们需要一个自动完成功能,这是完美的。在这一点上,移除ngram l为我们解决了问题。我相信我们的解决方案,如果我们把它带回来的话,就是只有两个索引,一个有ngram,一个没有ngram。我很可能会删除这个问题,因为我不知道我是否会抽出时间来测试我们的建议。谢谢你的帮助,我很感激。请随时解释你的实际用例,我相信我们会找到一个比复制索引更好的解决方案。在搜索过程中尽量不要使用nGram分析器,但只能在索引时使用。在映射中,您需要为
标题
内容
字段指定
“搜索分析器”:“标准”
,以便覆盖索引时启动的
nGram
分析器。您能试一下吗?我没有。有一个时间点,我们需要一个自动完成功能,这是完美的。在这一点上,移除ngram l为我们解决了问题。我相信我们的解决方案,如果我们把它带回来的话,就是只有两个索引,一个有ngram,一个没有ngram。我很可能会删除这个问题,因为我不知道我是否会抽出时间来测试我们的建议。谢谢你的帮助,我很感激。请随时解释你的实际用例,我相信我们会找到一个比复制索引更好的解决方案。