在对Elasticsearch-py使用查询匹配时,我无法应用自定义分析器。
我定制了一个名为custom_lowercase_stemmed
的分析器,并使用es.indices.put_settings
更新了索引设置。
但是,我搜索时找不到分析仪。
我还查看了analyzer
中的参数es.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')
答案 0 :(得分:0)
我认为您必须确保具备以下条件:
正确设置您的Configuration。在您的情况下,应在设置中将“ custom_lowercase_stemmed”字段用作分析器。您还可以定义要停止的单词。
使用Python ES客户端,您必须将分析器作为方法.search()
的参数发送。检查docs。但是,您可以尝试按原样运行查询。我在分析器上玩的还不够。
希望这会有所帮助! :D
答案 1 :(得分:0)
确保在映射时指定了分析仪,并确保查询正确的字段。
对于有关删除重复名称的匹配问题的疑问,在术语级别和短词中,模糊性和通配符参数将是最合适的!
干杯, 闵汉(: