栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

术语过滤器的elasticsearch连字符问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

术语过滤器的elasticsearch连字符问题

我想您的字段已经过分析,这是elasticsearch中字符串字段的默认设置。结果,当它被索引时,它不是被索引为一个术语“ update-
time”,而是被索引为两个术语:“ update”和“
time”。这就是为什么您的术语搜索找不到该术语的原因。如果您的字段将始终包含必须完全匹配的值,那么最好在映射中将此类字段定义为未分析。您可以通过使用新映射重新创建索引来做到这一点:

curl -XPUT http://localhost:9200/your-index -d '{    "mappings" : {        "your-type" : { "properties" : {     "field" : { "type": "string", "index" : "not_analyzed" } }        }    }}'curl -XPUT  http://localhost:9200/your-index/your-type/1 -d '{    "field" : "update-time"}'curl -XPOST http://localhost:9200/your-index/your-type/_search -d'{    "filter": {        "term": {     "field": "update-time"        }    }}'

另外,如果您希望在基于此字段查找记录时有一定的灵活性,则可以保持对该字段的分析并使用文本查询:

curl -XPOST http://localhost:9200/your-index/your-type/_search -d'{    "query": {        "text": {     "field": "update-time"        }    }}'

请记住,如果对您的字段进行了分析,那么只需搜索单词“ update”或单词“ time”,即可找到该记录。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390992.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号