0

将查询匹配与 elasticsearch-py 一起使用时,我无法应用自定义分析器。

我定制了一个名为custom_lowercase_stemmed并用于es.indices.put_settings更新索引设置的分析器。

但是,当我进行搜索时,它找不到分析器。

我还查看了 in 中的参数analyzeres.search但它返回错误:

..无法识别的参数:[分析器]

关于定制分析仪,我可以在这里得到任何建议吗?谢谢!

query_body = {
     "query": {
         "match": {
            "employer":{
                "query": txt,
                "fuzziness": 'AUTO',
                "analyzer" : 'custom_lowercase_stemmed'
            }
        }
    }
}
es.search(index='hello',body=query_body)

这是完整的错误:

RequestError: RequestError(400, 'search_phase_execution_exception', '[match] analyzer [custom_lowercase_stemmed] not found')
4

2 回答 2

0

我认为你必须确保你有以下几点:

  • 正确设置您的配置。在您的情况下,您应该在设置中将“custom_lowercase_stemmed”字段作为分析器。您还可以定义要停止的单词。

  • 使用 Python ES 客户端,您必须将分析器作为方法的参数发送.search()。检查文档。但是,您可以尝试按原样运行查询。我没怎么玩analyzer。

希望这有帮助!:D

于 2019-08-18T00:35:44.353 回答
0

确保您在映射中指定了分析器,并确保您查询的字段也正确。

对于您关于删除重复名称的匹配问题的问题,在术语级别和短词上,模糊性和通配符参数将是最合适的!

干杯,韩敏(:

于 2019-09-03T02:45:27.607 回答