django-elasticsearch-dsl 我对 ElasticSearch 主题还很陌生,我正在尝试使用 ElasticSearch 和库Github repo在我的 Django 应用程序中实现简单的电子商务搜索。
我试图(极其简化)实现的目标是,考虑到这些 Django 模型实例:
\nRed T-shirts\nBlue T-Shirts\nNice T-Shirts\nRun Code Online (Sandbox Code Playgroud)\n对于搜索词,T-Sh我将获得所有这三个结果:
Red T-shirts\nBlue T-Shirts\nNice T-Shirts\nRun Code Online (Sandbox Code Playgroud)\n所以我在shop/models.py中有这个模型(同样非常简化)
\nclass Category(models.Model):\n title = models.CharField(max_length=150, blank=False)\n description = models.CharField(max_length=150, blank=False)\n # In reality here I have more fields\n def __str__(self):\n return self.title\nRun Code Online (Sandbox Code Playgroud)\n与shop/documents.py
\nfrom elasticsearch_dsl import analyzer, tokenizer\n\nautocomplete_analyzer = analyzer(\'autocomplete_analyzer\',\n tokenizer=tokenizer(\'trigram\', \'nGram\', min_gram=1, max_gram=20),\n filter=[\'lowercase\']\n )from elasticsearch_dsl import analyzer, tokenizer\n\n@registry.register_document\nclass CategoryDocument(Document):\n\n title: fields.TextField(analyzer=autocomplete_analyzer, search_analyzer=\'standard\') # …Run Code Online (Sandbox Code Playgroud)