在将查询匹配与 elasticsearch-py 结合使用时,有任何自定义分析器的建议吗?

Any suggestions to customize an analyzer when using query match with elasticsearch-py?

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

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

但是,我在搜索时找不到分析仪。

我也查看了 es.search 中的参数 analyzer,但它 returns 出错了:

..unrecognized parameter: [analyzer]

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

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')

我认为您必须确保具备以下条件:

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

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

希望对您有所帮助! :D

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

你问的去重名的匹配问题,在term level和short words,fuzzy和wildcard parameters最合适!

干杯, 韩敏(: