需要使用 django_elasticsearch_dsl 搜索給定的文本。它應該適用于完整的單詞并且僅適用于世界的一部分。就像“示例”和“示例”一樣。使用 python 3.6,django_elasticsearch_dsl 7.0在文檔中發現 django“icontains”查詢類似于 elasticsearch_dsl.query 中的“match_phrase”,但似乎對我不起作用。titles = TitleDocument.search().query( Q("match", title=kwargs['text']) or Q("match", slug=kwargs['text']) or Q("match", page_title=kwargs['text']) or Q("match_phrase", menu_title=kwargs['text']) or Q("match_phrase", meta_description=kwargs['text']) )不適用于部分單詞(例如“neve”,full 是“never”)但 Django 查詢效果很好ti = Title.objects.filter(meta_description__icontains=kwargs['text'])僅使用一個字段進行過濾,例如我希望找到一些看起來像 django icontains 過濾器的東西。不僅需要查找全詞匹配。
1 回答
牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
嘗試使用正則表達式:
text = ".*{}.*".format(kwargs["text"])
titles = TitleDocument.search().query(
"query_string",
query=text,
fields=["title", "slug", "page_title", "menu_title", "meta_description"],
)
添加回答
舉報
0/150
提交
取消
