Elasticsearch 术语方面不显示否定术语

标签 elasticsearch faceted-search facet

我正在使用 Elasticsearch 词facets,我的字段包含一些负值,但facet忽略负号

以下是构面查询

<强> http://myserver.com:9200/index/type/_search

获取/发布正文

{
  "facets" : {
    "school.id" : {
      "terms" : {
        "field" : "school.id",
        "size" : 10
      }
    }
  }
}

回应

{
    "took": 281,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "facets": {
        "school.id": {
            "_type": "terms",
            "missing": 302,
            "total": 4390,
            "other": 0,
            "terms": [
                {
                    "term": "1113515007867355135",
                    "count": 4390
                }
            ]
        }
    }
}

id 的实际值是 -1113515007867355135,我做错了什么还是需要传递任何内容来包含负号(词干问题)?

最佳答案

负号是 Lucene(和 ElasticSearch)中的特殊字符。

在索引和搜索时,您需要 escape it .

尝试在索引中的 - 字符之前添加 \,这也会将其显示在构面中。

关于Elasticsearch 术语方面不显示否定术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15637687/

相关文章:

java - 通过 JAVA API 使用 JSON 文件查询 ElasticSearch

mysql - Solr - 模式帮助(产品属性)

solr - 从 Solr 结果中过滤掉不相关的方面

r - 使用 2 个变量的 facet_wrap 更改 strip.text 的颜色

javascript - Solr/Javascript/Python : open source Solr UI with multiple select faceting?

elasticsearch - Elasticsearch 查询,返回每个类别的前3个

elasticsearch - Elasticsearch,查找没有匹配值的文档

json - 无法通过Logstash将JSON数据导入Elastic

java - 使用 java 和 lucene 3.6 进行分面搜索的教程

Elasticsearch 数据聚合与数组分面