で使用しようとしましPercolator
たElasticsearch
が、小さな問題があります。
ドキュメントが次のようになっているとします。
{
"doc": {
"full_name": "Pacman"
"company": "Arcade Game LTD",
"occupation": "hunter",
"tags": ["Computer Games"]
}
}
登録したクエリは次のようになります。
{
"query": {
"bool": {
"must": [
{
"match_phrase":{
"occupation": "hunter"
}
},
{
"terms": {
"tags": [
"Computer Games",
"Electronic Sports"
],
"minimum_match": 1
}
}
]
}
}
}
私は得る:
{
"took": 3,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"total": 0,
"matches": []
}
terms
登録されたクエリから削除して一致させると、期待どおりに機能し、1つの一致が得られるため、何が間違っているのかわかりませんoccupation
。
ヒントはありますか?
更新 1
OK、@Slamのソリューションは正しい方向だと思いますが、まだいくつかの問題があります:
タグのマッピングを更新したので、次のようになりました。
"tags": {
"store": True,
"analyzer": "snowball",
"type": "string",
"index": "analyzed",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
パーコレートする新しいドキュメント:
{
"doc": {
"full_name": "Pacman"
"company": "Arcade Game LTD",
"occupation": "hunter",
"tags.raw": ["Computer Games"]
}
}
上記のドキュメントを と照合しようとしてtags.raw
も、まだ一致が見つかりません。フィールドを分析tags.raw
しましたが、まだトークンcomputer
、games
およびを作成しているようrunning
です。