gpt4 book ai didi

Django haystack,搜索中某些字段的优先级

转载 作者:行者123 更新时间:2023-12-02 07:02:34 26 4
gpt4 key购买 nike

我有一个这样的模型:

class MyModel(models.Model):
desc1 = models.TextField(blank=True, default="")
desc2 = models.TextField(blank=True, default="")

我想在此模型的字段上搜索字符串。假设 MyModel 的这些实例:

1: desc1="ABc?", desc2="asdasd you"
2: desc1="Hello, How are you?", desc2="Thank you!"
3: desc1="ABc?", desc2="ajdf"

当我搜索“you”时,它应该向我显示第一个和第二个实例。最后我需要显示 desc1 中“you”高于其他结果的结果。例如,在此示例中,第二个应该高于第一个。

我使用了 haystack 进行搜索并为此创建了一个模板。但我无法解决优先级问题。

最佳答案

当您说“优先级”时,用搜索术语来说,您实际上指的是“排序”。

Django Haystack 可以按字段匹配进行排序,但它可以按“分数”排序,其中它使用算法来确定排序顺序。您可以通过“提升”来影响分数的权重 - 请参阅 http://django-haystack.readthedocs.org/en/latest/boost.html

此外,您应该考虑在 search_indexes.py 中添加额外的字段,仅用于加权。您不需要在 Django 模型字段和索引之间建立一对一的映射。类似的东西

class MyModelIndex(QueuedSearchIndex):
desc1 = indexes.CharField()
desc2 = indexes.CharField()
otherWeightedField = indexes.CharField()

def prepare_otherWeightedField(self,obj)
# fill the extra field with extra stuff to help you sort, based on processing values from other fields

关于Django haystack,搜索中某些字段的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com