django - 在elasticsearch-dsl中为完成建议字段定义权重

标签 django python-3.x elasticsearch elasticsearch-5 elasticsearch-dsl

在我的Django应用程序中,使用Elastic Search 5.2.x和elasticseach-dsl进行批量索引创建时,我试图实现一个完成建议字段,如下所示:

def indexing(self):
       obj = SchoolIndex(
          meta = {'id': self.pk},
          name = self.name,
          name_suggest = self.name
       )
       obj.save(index="school_index")
       return obj.to_dict(include_meta=True)

现在,我需要为建议字段name_suggest定义一些权重,以便在查询过程中对建议进行评分,但是我无法弄清elasticsearch-dsl特定的语法来在上述功能中执行相同的操作。

我尝试这样做,但是没有用:
name_suggest = {'input':self.name,'weight':100}

本质上,我正在尝试在Django中实现文档在此处显示的内容:
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-suggesters-completion.html#indexing

我是Elastisearch的新手,请告知我是否在代码中的正确位置分配权重以及在Django中分配权重的语法。

谢谢。

最佳答案

供他人引用,以下是权重索引的一种工作方法:

def indexing(self):
       obj = SchoolIndex(
          meta = {'id': self.pk},
          name = self.name,
          name_suggest = {'input': self.name, 'weight': 10}
       )
       obj.save(index="school_index")
       return obj.to_dict(include_meta=True)
通过以上操作,得分将基于权重而提高。

关于django - 在elasticsearch-dsl中为完成建议字段定义权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56038110/

相关文章:

python - 列出带有子选项的 tkinter 组合框选项

elasticsearch - 地理距离过滤器

elasticsearch - Elastic Search - 按索引聚合分组

java - 通过java API进行elasticsearch的纯字符串模板查询?

python - Django - 模板未加载,永久 302 消息

python - 使用 eclipse 运行 Python Django migrate 时出现 Mysql 错误

python - 如何让 Django 中的应用程序知道登录过程已经完成?

python - django apache mod-wsgi 挂起从 .so 文件导入 python 模块

python - 将 HTTPResponse 对象转换为字典

python - 关于 yaml 架构验证的错误(此处不允许映射值)是什么意思?