如何解决带破折号或其他符号的弹性多重匹配字符串
我正在尝试在我的弹性查询中匹配破折号(和其他符号)。
我的查询:
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 举报,一经查实,本站将立刻删除。