我是Elasticsearch的新手,如果答案很明显,请原谅我。
以下是我对相关字段的映射所具有的内容:
"condition" : { "type" : "string", "store" : "no", "index": "not_analyzed", "omit_norms" : "true" }
我需要在这个字段上搜索,但我需要在子字符串上进行100%字符串匹配(没有词干等)(空白分隔)。文档中此字段的示例如下:
{
"condition": "abc xyz"
}
示例查询是:
/_search?q=condition:xyz
上述映射是否正确?我也使用了omit_norms(true)。在我的案例中,这是正确的做法吗?
如何禁用此字段的评分?我可以在制图中做到吗?这样做的最佳方式是什么? (实际上我需要禁用多个得分。我确实有需要得分的字段)
谢谢和问候!
答案 0 :(得分:3)
使用omit_norms:true
不会考虑得分的字段长度,Elasticsearch不会为规范信息编制索引。因此,如果您不想使用评分这是一件好事,因为它可以节省一些磁盘空间。
如果您对查询中的评分不感兴趣,请使用过滤后的查询:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": {
"term": {
"condition": "abc xyz"
}
}
}
}
}
}
}
答案 1 :(得分:0)
过滤查询的新语法现在为:
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"term": {
"condition": "abc"
}
}
}
}
}