メッセージのタグを ElasticSearch に保存したいと考えています。tags フィールドを次のように定義しました。
{
'tags': {
'type': 'string',
'index_name': 'tag'
}
}
メッセージの場合、次のリストをタグ フィールドに保存しました。
['a','b','c']
次のクエリでタグ「b」を検索しようとすると、メッセージとタグが返されます。
{
'filter': {
'limit': {
'value': 100
}
},
'query': {
'bool': {
'should': [
{
'text': {
'tags': 'b'
}
}
],
'minimum_number_should_match': 1
}
}
}
タグ 'c' についても同様です。しかし、これでタグ「a」を検索すると:
{
'filter': {
'limit': {
'value': 100
}
},
'query': {
'bool': {
'should': [
{
'text': {
'tags': 'a'
}
}
],
'minimum_number_should_match': 1
}
}
}
それはまったく結果を返しません!答えは次のとおりです。
{
'hits': {
'hits': [],
'total': 0,
'max_score': None
},
'_shards': {
'successful': 5,
'failed': 0,
'total': 5
},
'took': 1,
'timed_out': False
}
私は何を間違っていますか?('a' がリストの最初の要素であることは問題ではありません。同じことが ['b','a','c'] にも当てはまります。単一の 'a' 文字でのみ問題があるようです。 .