elasticsearch 弹性搜索不过滤,elasticsearch,filter,elasticsearch,Filter" /> elasticsearch 弹性搜索不过滤,elasticsearch,filter,elasticsearch,Filter" />

elasticsearch 弹性搜索不过滤

elasticsearch 弹性搜索不过滤,elasticsearch,filter,elasticsearch,Filter,我正在尝试根据categoryCode进行筛选,但没有得到任何结果 我试过使用一个未经分析的字段,但它起作用了,我如何才能使它在这个特定字段中起作用 "categoryCode": { "type": "text", "analyzer": "autocomplete", "search_analyzer": "standard", "norms": false, "copy_to": "all_fields", "doc_values": false, "fie

我正在尝试根据categoryCode进行筛选,但没有得到任何结果

我试过使用一个未经分析的字段,但它起作用了,我如何才能使它在这个特定字段中起作用

  "categoryCode": {
  "type": "text",
  "analyzer": "autocomplete",
  "search_analyzer": "standard",
  "norms": false,
  "copy_to": "all_fields",
  "doc_values": false,
  "fields": {
    "raw": {
      "type": "keyword",
      "index": false,
      "normalizer": "lowercase_normalizer",
      "norms": false
    },
    "fulltext": {
      "type": "text",
      "analyzer": "standard",
      "doc_values": false
    }
  }
}
用于筛选的查询:

   "bool":{
      "filter":[
         {
            "bool":{
               "must":[
                  {
                     "term":{
                        "categoryCode":{
                           "value":"PAYROLL"
                        }
                     }
                  }
               ]
            }
         }
      ]
   }
}

您正在分析的
categoryCode
上进行搜索,因此会经过分析阶段,并根据
标准的
分析器(搜索分析器)创建令牌,该分析器也会将令牌小写

您需要搜索包含文档关键字格式的
categoryCode.raw
,而不是
categoryCode
您可能还需要删除查询中的
lowercase\u normalizer
,您正在使用
术语
查询,该查询不会在原始字段上通过
小写规范化程序
,可能导致
工资单
工资单
不匹配

我已经创建了示例索引定义、索引文档并修改了搜索查询以获得预期结果。(您的整个映射不可用,因此创建了一个简单的示例来解释)

索引def(最小值) 索引文件 搜索查询 搜索结果
categoryName
categoryCode
,您提供的映射是针对表单的。我更新了右侧字段的映射,该字段为categoryCode@JosephBouSaada,提供的答案请看一看,如果您需要更多,请告诉我clarification@JosephBouSaada运气好吗?请随时询问您是否有进一步的问题questions@JosephBouSaada,感谢您接受我的答案,我很高兴,我在这里提供了帮助,您可以通过单击我答案前面的向上箭头按钮来更新我的答案,如果您需要帮助,请阅读:-)我所需要的只是将原始属性编入ES索引。删除小写的_normalizer将不允许我将paylol与该字段上的PAYROLL匹配。谢谢@Opster ElasticsearchNinja@JosephBouSaada,很高兴它有帮助
{
    "mappings": {
        "properties": {
            "categoryCode": {
                "type": "text",
                "fields": {
                    "raw": {
                        "type": "keyword",
                        "norms": false
                    },
                    "fulltext": {
                        "type": "text",
                        "analyzer": "standard",
                        "doc_values": false
                    }
                }
            }
        }
    }
}
{
   "categoryCode" : "PAYROLL"
}
{
    "query": {
        "bool": {
            "filter": [
                {
                    "bool": {
                        "must": [
                            {
                                "term": {
                                    "categoryCode.raw": { -->notice `.raw`
                                        "value": "PAYROLL"
                                    }
                                }
                            }
                        ]
                    }
                }
            ]
        }
    }
}
 "hits": [
         {
            "_index": "so-60531341",
            "_type": "_doc",
            "_id": "1",
            "_score": 0.0,
            "_source": {
               "categoryCode": "PAYROLL"
            }
         }
      ]