0
我有我的elasticsearch_dsl類幾件事情,我想查詢的精確匹配:如何查詢未分析的字段?
class Profile(DocType):
name = String(fields={'raw': String(index='not_analyzed')})
雖然這不工作,我總是需要一個.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
,因爲它應該是相同的。
什麼是正確的方法?
你只需要將你的主字段標記爲'not_analyzed',但是最好的方法是像現在一樣擁有'raw'字段。 –
我確實將其索引爲'not_analyzed',請參閱我附加的DocType類。 – shredding