ファセットがスペースでタグをトークン化することに問題があります。
私は次のマッピングを持っています:
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