私はelasticsearch_dslクラスに、完全一致を照会したいものをいくつか持っています:
class Profile(DocType):
name = String(fields={'raw': String(index='not_analyzed')})
それは機能しますが、常にクエリに a を追加する必要があり、正確に.raw
クエリすることはできませんname
:
# Matches "foo" and "foo-1"
Profile.search().filter('term', name='foo'})
# Matches nothing
Profile.search().filter('term', name='foo-1'})
# Matches what i want (only "foo-1")
Profile.search().filter('term', **{'name.raw': 'foo-1'})
これはちょっと間違っているように感じます。同じである必要があるため、 を使用するだけname
でなくraw
、 を使用できるはずです。
正しい方法は何ですか?