在将查询匹配与 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最合适!
干杯,
韩敏(:
在使用 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最合适!
干杯, 韩敏(: