ファセットがスペースでタグをトークン化することに問題があります。
私は次のマッピングを持っています:
curl -XPOST "http:// localhost:9200 / pictures" -d ' {{ 「マッピング」:{ "ピクチャー" : { "プロパティ" : { "id":{"type": "string"}、 "description":{"type": "string"、 "index": "not_analyzed"}、 "featured":{"type": "boolean"}、 "categories":{"type": "string"、 "index": "not_analyzed"}、 "tags":{"type": "string"、 "index": "not_analyzed"、 "analyzer": "keyword"}、 "created_at":{"type": "double"} } } } } '
そして私のデータは:
curl -X POST "http:// localhost:9200 / pictures / pictures" -d'{ "写真": { "id": "4defe0ecf02a8724b8000047"、 「タイトル」:「ビクトリアシークレットフォトシュート」、 「説明」:「フランスとイタリアから」、 「注目」:true、 「カテゴリ」:[ "ファッション"、 「ガールズ」、 ]、 「タグ」:[ "女の子"、 "写真撮影"、 「スーパーモデル」、 "ヴィクトリア・シークレット" ]、 "created_at":1405784416.04672 } } '
そして私のクエリは次のとおりです。
curl -X POST "http:// localhost:9200 / pictures / _search?pretty = true" -d ' {{ "クエリ":{ "文章": { 「タグ」:{ "クエリ":"ビクトリアシークレット" } } }、 「ファセット」:{ 「タグ」:{ "条項": { "フィールド":"タグ" } } } } '
出力結果は次のとおりです。
{{ 「取った」:1 "timed_out":false、 "_shards":{ 「合計」:5 「成功」:5、 「失敗」:0 }、 「ヒット」:{ 「合計」:0、 "max_score":null、 「ヒット」:[] }、 「ファセット」:{ 「タグ」:{ "_type": "terms"、 「行方不明」:0、 「合計」:0、 「その他」:0、 "条項" : [ ] } } }
今、私はファセットで合計0を取得し、ヒット
で合計0を取得し
ました。タグからキーワードアナライザー
を削除して「not_analyzed」にすると、結果が得られることを知っています。
ただし、大文字と小文字を区別するという問題がまだあります。キーワードアナライザーを削除して
上記のクエリを実行すると、次のような結果が得られます。
ファセット:{ タグ:{ _type:用語 行方不明:0 合計:12 その他:0 条項: [ {{ 用語:写真撮影 カウント:1 } {{ 用語:女の子 カウント:1 } {{ 用語:ビクトリアシークレット カウント:1 } {{ 用語:スーパーモデル カウント:1 } ] } }
ここで、 Victoria Secretは「not_analyzed」では大文字と小文字を区別しますが、カウントにスペースが必要ですが、「victoria secret」として小文字でクエリを実行しても、結果は得られません。
助言がありますか??
ありがとう、
Suraj