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)の特殊文字です。

インデックス作成と検索を行うときは、エスケープする必要があります。

\インデックスの文字の前にaを追加してみてください-。これにより、ファセットでも文字が表示されます。

于 2013-03-26T13:29:23.147 に答える
1

ElasticsearchGoogleGroupから回答を得ました。フィールドのマッピングを更新する必要があります

考えられる解決策:

マッピングを更新して使用する

"index": "analyzed"、 "analyzer": "keyword"

また

"インデックス": "not_analyzed"

于 2013-03-27T13:01:33.850 に答える