2012-07-20 77 views
1

我鑽進去Solr的配置的東西,揣摩如何實現自動完成功能。與範圍Solr的自動完成這可能嗎?

一些細節這裏提到http://wiki.apache.org/solr/Suggester/

但我不希望使用相同的字典對所有的網站 - 當你有一些私人數據是沒有用的。我的意思是幾個企業使用搜索,我想做出僅基於公司數據autocompleate。是否有可能限制自動完成結果使用某種語法來限定它們。

我與的Rails 3太陽黑子寶石工作Solr的3.6

更新:

我發現寶石這更新的軌道3和必要的配置文件 這裏是它https://github.com/xponrails/sunspot_autocomplete

這兩個答案幫助我做到這一點

回答

1

不幸的是,不可能過濾通過Suggester作出的自動建議。 您可能想看看this blog我寫了其他選項。您應該考慮使用無論是小前綴或文章中描述的n-gram的解決方案。 Ngrams解決方案更靈活,性能更高,但會導致索引大小的增長,而方面前綴方法已準備就緒,但可能會更慢。只要給他們一個嘗試,看看你更喜歡哪一個。

+0

不錯的文章 - 謝謝。 – Vladimir 2012-07-20 10:48:18

+0

謝謝!我用更多的細節更新了我的答案。如果您有任何疑問,請告訴我! – javanna 2012-07-20 14:31:03

1

我正在使用EdgeNgram字段並對其進行自動完成查詢。

像這樣的事情在你的schema.xml:

<field name="title_auto" type="edge_ngram" indexed="true" stored="true" multiValued="false" /> 

查詢「測試」看起來像

Jul 20, 2012 12:28:58 PM org.apache.solr.core.SolrCore execute 
INFO: [collection1] webapp=/solr path=/select/ params={spellcheck=true&sort=date+desc fl=*+score&start=0&q=title_auto:(test)&spellcheck.count=1&spellcheck.collate=true&wt=json hits=0 status=0 QTime=2 

即使我使用第三方應用程序來查詢發送到Solr( Django-Haystack),上面的查詢應該與您正在查找的內容類似。