Django草堆问题,搜索词很小

2024-04-20 09:55:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个对象的notes字段写着“WV Test Two”

我希望在搜索“WV”、“Test”、“Two”或它们的组合时出现这个问题。我正在使用干草堆与嗖嗖的后端。似乎每当搜索中包含“WV”时,即使其中有另一个关键字,也不会返回任何内容。你知道吗

>>> from haystack.query import SearchQuerySet as sqs
>>> results = sqs().filter(content='wv')
>>> results
[]
>>> results = sqs().filter(content='wv test')
>>> results
[]
>>> results = sqs().filter(content='test') # this works
>>> results
[<SearchResult: drives.files ... ]
>>> results = sqs().filter(content='two') # this also works
>>> results
[<SearchResult: drives.files ... ]
>>> results = sqs().filter(content='test two') # as does this
>>> results
[<SearchResult: drives.files ... ]
>>> results = sqs().filter(content='wv two')
>>> results
[]
>>> results = sqs().filter(content='wv test two')
>>> results
[]

我猜是因为只有两个字符。有什么办法解决这个问题吗?我希望所有这些查询都包括“WV Test Two”

class Drives(models.Model):
    serial = models.CharField(primary_key=True, max_length=100)
    notes = models.TextField(blank=True)
    username = models.CharField(max_length=20, blank=True)

在我的搜索中_索引.py地址:

class DrivesIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.NgramField(document=True, use_template=True)

驱动器_文本.txt地址:

{{ object.serial }}
{{ object.notes }}

Tags: testtruemodelscontentfilterthisresultsnotes