当使用查询匹配和 elasticsearch-py 时,我无法应用自定义分析器。
我自定义了一个名为custom_lowercase_stemmed
的分析器,并使用es.indices.put_settings
来更新索引设置。
但是,当我进行搜索时,它找不到分析器。
我还在es.search
中查看了参数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')
我认为您必须确保具备以下条件:
-
正确设置配置。在您的情况下,您应该在设置中将字段"custom_lowercase_stemmed"作为分析器。您还可以定义要停止的单词。
-
使用 Python ES 客户端,您必须将分析器作为方法的参数发送
.search()
.查看文档。但是,您可以尝试按原样运行查询。我没怎么玩过分析仪。
希望这是有帮助的! :D
确保在映射中指定了分析器,并确保查询正确的字段。
对于您关于删除重复名称的匹配问题的问题,在术语级别和短词、模糊度和通配符参数将是最适合的!
干杯 韩敏 (: