Elasticsearch术语表面没有显示否定词

时间:2013-03-26 12:59:09

标签: elasticsearch faceted-search facet

我使用的是弹性搜索词facet,My field包含一些负值但是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 ,我做错了什么或者我是否需要传递任何内容以包含负号(词干问题)?

2 个答案:

答案 0 :(得分:2)

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

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

尝试在索引中的\字符之前添加-,这也应该将其提升到构面中。

答案 1 :(得分:1)

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

可能的解决方案:

更新映射并使用

“index”:“analyze”,“analyzer”:“keyword”

“index”:“not_analyzed”