如何解决elasticsearch - bool_prefix 类型的模糊性
我有以下查询:
{
size: 6,query: {
multi_match: {
query,type: 'bool_prefix',fields: ['recommendation','recommendation._2gram','recommendation._3gram'],},highlight: {
fields: {
recommendation: {},}
我想将 fuzziness: 1
添加到此查询,但 type: 'bool_prefix'
存在问题。我需要 type: 'bool_prefix
留在那里 b/c 它是查询工作方式的组成部分,但我还想为其添加一些模糊性。有什么想法吗?
解决方法
如bool_prefix
的官方ES documentation中所述
模糊度、prefix_length、max_expansions、fuzzy_rewrite 和 支持fuzzy_transpositions 参数的术语是 用于构建术语查询,但对 从最后一个词构造的前缀查询。
添加一个包含索引映射、数据、搜索查询和搜索结果的工作示例
索引映射:
{
"mappings": {
"properties": {
"recommendation": {
"type": "search_as_you_type","max_shingle_size": 3
}
}
}
}
索引数据:
{
"recommendation":"good things"
}
{
"recommendation":"good"
}
搜索查询:
可以用bool_prefix
添加fuzziness参数,如下图
{
"size": 6,"query": {
"multi_match": {
"query": "goof q","type": "bool_prefix","fields": [
"recommendation","recommendation._2gram","recommendation._3gram"
],"fuzziness": 1
}
},"highlight": {
"fields": {
"recommendation": {}
}
}
}
搜索结果:
"hits": [
{
"_index": "65817192","_type": "_doc","_id": "2","_score": 1.1203322,"_source": {
"recommendation": "good things"
},"highlight": {
"recommendation": [
"<em>good</em> things"
]
}
},{
"_index": "65817192","_id": "1","_score": 0.1583319,"_source": {
"recommendation": "good"
},"highlight": {
"recommendation": [
"<em>good</em>"
]
}
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。