我正试图在filter
查询中使用filtered
,这就是我正在尝试使用Sense:
GET myindex/catalog/_search
{
"query": {
"filtered": {
"query": {
"query_string": {
"analyze_wildcard": true,
"query": "test",
"fields": ["title^3.5", "contributions.authors.name^5", "publisher^2", "formats.productCode^0.5", "description^0.1"],
"use_dis_max": true
}
},
"filter": {
"term": {
"sku": "test-687"
}
}
}
}
}
此查询没有任何匹配,但如果我删除了filter
属性,我会得到sku = test-687
的项目。
我无法理解为什么filter
的查询不会给我相同的结果。
映射:
{
"myindex": {
"mappings": {
"catalog": {
"properties": {
"sku": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
}
}
}
}
}
}
答案 0 :(得分:1)
完整查询是:
GET myindex/catalog/_search {
"query": {
"filtered": {
"query": {
"query_string": {
"analyze_wildcard": true,
"query": "test",
"fields": ["title^3.5", "contributions.authors.name^5", "publisher^2", "formats.productCode^0.5", "description^0.1"],
"use_dis_max": true
}
},
"filter": {
"bool": {
"must": {
"query": {
"match": {
"sku": "test-687"
}
}
}
}
}
}
}
}
使用默认映射"使用标准分析器" :
使用带有标准令牌过滤器,小写令牌过滤器和停止令牌过滤器的标准令牌器构建标准型分析器。
(更多细节her)
术语区分大小写,不匹配