微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带破折号或其他符号的弹性多重匹配字符串

如何解决带破折号或其他符号的弹性多重匹配字符串

我正在尝试在我的弹性查询中匹配破折号(和其他符号)。

使用认的空白分析器对所有字段进行模糊搜索

我的查询

function_score: {
        query: {
            multi_match: {
                query: string
                analyzer: "whitespace",fuzziness: 1
            }
        }
    }

然而,这对破折号字符产生了意想不到的结果。前任。中央公园不适用于此。或者

只有当我使用短语匹配并去掉双引号时,破折号才能很好地工作。但没有模糊。

有谁知道我如何用破折号正常进行模糊搜索

解决方法

添加一个包含索引映射、索引数据、搜索查询和搜索结果的工作示例

索引映射:

{
  "mappings": {
    "properties": {
      "place": {
        "type": "text","analyzer":"whitespace"
      }
    }
  }
}

索引数据:

{
  "place": "Cwntral-Park"
}
{
  "place": "Central-Park"
}
{
  "place": "Central-Area"
}

搜索查询:

{
  "query": {
    "bool": {
      "should": {
        "match": {
          "place": {
            "query": "Central-Park","fuzziness": 1
          }
        }
      }
    }
  }
}

搜索结果:

"hits": [
      {
        "_index": "65605120","_type": "_doc","_id": "1","_score": 0.9808291,"_source": {
          "place": "Central-Park"
        }
      },{
        "_index": "65605120","_id": "3","_score": 0.8990934,"_source": {
          "place": "Cwntral-Park"
        }
      }
    ]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。