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

时间:2015-12-03 05:21:12

标签: python django elasticsearch django-haystack whoosh

我已关注此链接 - > Django Haystack and Taggit并使用haystack索引了字段并将其作为搜索引擎。如果多对多字段具有多个单词作为属性值,则搜索失败。索引以 - >

完成
>>> 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中有一个单词且索引就像 - &gt;

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的上述索引,搜索工作正常。 有人可以帮帮我。

1 个答案:

答案 0 :(得分:0)

您使用autocomplete查找设计用于自动完成的filter,而您应使用 books = searchQuerySet().filter(content=haystack.inputs.AutoQuery(query))

for l=1:25
    [matches(:,l), postfix(:,l)] = regexp(semanticTrajCompact(1,4).TrajCompact,sprintf('%d%d(.*)',digits{1}(l),digits{2}(l)),'match','once','tokens');
end