在我的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/