2013-02-15 118 views
0

我正在使用django乾草堆(使用ElasticSearch搜索引擎),並希望實現與自動完成不同的自動建議功能。實現自動建議功能(不自動完成)

例如,考慮到已經索引的小數據集(錶行):

When your code is all set 
And you have finished it all 
Your goals have been met 
And you feel not so small 

這是我希望實現:

First input query(for search index): 'finished coding' 
expected search result: 
    When your code is all set 
    And you have finished it all 

Second, input query(for search index): 'finished coding! goals met!' 
expected search result: 
    When your code is all set 
    And you have finished it all 
    Your goals have been met 

草垛的SearchQuerySet().autocomplete(content=above query)不會產生上述結果。

如何建立這樣的查詢集?

我們也看到它在stackoverflow的問題頁面;即當我們輸入標題字段時,它會給我們一個問題列表,這些問題可能已經有你的答案

+0

'haystack's SearchQuerySet()。autocomplete(content = above query)does not produce the above result.'它是什麼_does_產生的? – 2013-02-15 18:35:20

+0

@Hedde:它只是按順序匹配確切的短語;否則返回空結果! – anand 2013-02-15 18:55:44

+0

您是否將haystack的[默認操作符](http://django-haystack.readthedocs.org/en/v1.2.4/settings.html#haystack-default-operator)設置爲'OR',它默認爲'AND'。 。 – 2013-02-15 19:14:42

回答

1

我得到了預期的結果通過:

SearchQuerySet().filter(content__in=query.split()) 

也許這不是正確的方法,如標記化是搜索引擎的任務,但它爲我工作。