【发布时间】:2021-07-25 07:17:35
【问题描述】:
client = Elasticsearch()
s = Search(using=client,index="myntra_clothes")
fts_query = MultiMatch(query=data['text'], fields=['Title', 'Description'], operator="AND", fuzziness='AUTO')
s = s.query(fts_query)
s = s.filter('match', SubCategory3='Jeans')
result = s.execute()
虽然上述工作正常, 以下是我尝试过的列表,但不起作用:
s = s.filter('terms', Colour['Blue','Black'])
q = Q('term', Category='Men') & Q('term', SubCategory3='Jeans')
s = s.query(q)
es_query = []
es_query.append(Q("match", Category="Male"))
es_query.append(Q("match",SubCategory3="Jeans"))
final_query = Q("bool", must=es_query)
s = s.query(final_query)
这些查询执行时不会抛出任何错误,只是返回一个空白响应。
更新: 我正在使用 Django 框架,下面是我的映射:
@registry.register_document
class MyntraClothesDocument(Document):
class Index:
# Name of the Elasticsearch index
name = 'myntra_clothes'
settings = {'number_of_shards': 1,
'number_of_replicas': 0}
class Django:
# The Django model associated with this Document
model = MyntraClothes
# The fields of the model you want to be indexed in Elasticsearch
fields = ['SubCategory3','Category','Colour','Title','Description']
【问题讨论】:
标签: python elasticsearch elasticsearch-dsl