我可以为以下 ElasticSearch 查询获取数据:
然而,如果我使用“match”进行查询,就会收到400状态响应的错误消息。
我能够获取以下 ElasticSearch 查询的数据:
{
"query": {
"filtered": {
"query": [],
"filter": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"term": {
"gender": "malE"
}
},
{
"term": {
"sentiment": "positive"
}
}
]
}
}
]
}
}
}
}
}
然而,如果我使用“match”进行查询,就会收到400状态响应的错误消息。
{
"query": {
"filtered": {
"query": [],
"filter": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"match": {
"gender": "malE"
}
},
{
"term": {
"sentiment": "positive"
}
}
]
}
}
]
}
}
}
}
}
嵌套布尔过滤器不支持匹配查询吗?
由于术语查询在字段的反向索引中查找精确术语,而我想将性别数据查询为不区分大小写的字段 - 我应该尝试哪种方法?
索引设置:
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"analyzer_keyword": {
"tokenizer": "keyword",
"filter": "lowercase"
}
}
}
}
}
}
Gender字段的映射:
{"type":"string","analyzer":"analyzer_keyword"}