作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想找到完全匹配。如果没有匹配。我不想null。
我正在搜索此 ID 6a8c283f-1e75-ec11-8943-000d3a15f525
。它给了我这个输出
但是这些它不匹配只有ec11
匹配
我试过这个搜索查询
result = await client.search({
index: 'products',
"query": {
"match": {
"sysid":sysid
}
}
})
最佳答案
问题是因为您的 sysid
字段是 text
类型,因此在索引时被分析并标记为 fcf0dd4e
, abbc
、ec11
、8943
和 000d3a15f525
。
此外,当使用匹配查询进行搜索时,搜索词也会被分析为以下标记 6a8c283f
、1e75
、ec11
、8943
,000d3a15f525
。
如您所见,匹配成功是因为 ec11
匹配。
对于完全匹配,您需要做的是针对 keyword
字段运行查询。也许您很幸运,您的映射已经包含一个 sysid.keyword
子字段。如果不是,您需要更改您的映射并重新索引您的数据。
然后您将能够像这样运行您的 term
查询并获得完全匹配:
"term": {
"sysid.keyword":sysid
}
关于javascript - 如何在 Elasticsearch 中进行精确匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71883804/
我是一名优秀的程序员,十分优秀!