2

我正在使用弹性搜索词方面,我的字段包含一些负值,但方面忽略了负号

以下是方面查询

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,我做错了什么还是需要传递任何内容以包含负号(词干问题)?

4

2 回答 2

2

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

在索引和搜索时,您需要对其进行转义

尝试在索引中\的字符之前添加一个-,这也应该在构面中显示它。

于 2013-03-26T13:29:23.147 回答
1

从Elasticsearch Google Group得到答案。需要更新字段的映射

可能的解决方案:

更新映射和使用

“索引”:“分析”,“分析器”:“关键字”

或者

“索引”:“未分析”

于 2013-03-27T13:01:33.850 回答