Django haystack 索引多对多字段但如果有多个单词则搜索失败

Django haystack indexing many to many field but search failing if there are more than one word

我遵循了这个 link-->Django Haystack and Taggit 并使用 haystack 和 whoosh 作为搜索引擎对字段进行了索引。如果多对多字段具有多个单词作为属性值,则搜索失败。索引按 -->

完成
>>> results[7]
<Hit {'isbn_13': u'9780750661751', u'django_id': u'39858',
'text':u'Reinventing\n9780750661751\n\nJohn Worthington\n\n\n\n\n',
'authors': u'John Worthington', u'django_ct': u'books.book',
'content_auto': u'Reinventing', u'id': u'books.book.39858'}>

对于此索引,搜索 John Worthington 时搜索失败。 authorsMultivalueField 并且搜索失败,因为它有 2 个词。 但是当 MultivalueField 中有一个单词并且索引是 like->

results[0]
<Hit {'isbn_13': u'9.78147E+12', u'django_id': u'39851',
'text': u'Analytic\n9.78147E+12\n\nChau\n\n\n\n\n',
'authors': u'Chau', u'django_ct': u'books.book',
'content_auto': u'Analytic', u'id': u'books.book.39851'}>

对于上述搜索索引Chau,搜索工作正常。 有人可以帮帮我吗

您使用 autocomplete 进行查找,它专为自动完成而设计,而您应该使用 filter :

  books = searchQuerySet().filter(content=haystack.inputs.AutoQuery(query))