【发布时间】:2015-12-03 05:21:12
【问题描述】:
我已关注此链接-->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 时搜索失败。 authors 是 MultivalueField 并且搜索失败,因为它有 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 的上述索引,搜索工作正常。
谁能帮帮我。
【问题讨论】:
-
你为什么不使用 CharField 代替?
-
我试过但没用
-
你是如何进行搜索查询的
-
books = SearchQuerySet().autocomplete(content=query) -
不要使用
autocomplete搜索,而是使用filter:books = searchQuerySet().filter(content=haystack.inputs.AutoQuery(query))
标签: python django elasticsearch django-haystack whoosh