2010-09-22 19 views
3

我有一個非常簡單的SQL表,我想要導入到Solr,但由於我想要搜索的功能,我無法確定最佳模式。自動完成的簡單Solr模式問題

用戶將開始在輸入框中輸入內容,並在3個字符後將請求發送到服務器,並提取最相關的結果,返回前15個匹配的id和名稱。

表前)

id | name 
---------------- 
1 | boating magazines 
2 | boats weekly 
3 | boaters collection 
4 | shipping lane 
5 | ships today 

搜索和預期收益前)

boa | [1, boating magazines], [2, boaters weekly], [3, boaters collection] 
boat | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today] 
shi | [4, shipping lane], [5, ships today] 
ship | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today] 
boating | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today] 

(顯然那些將返回XML)

我如何將實現,這將是任何信息讚賞。謝謝。

回答

2

您可以使用facet.prefix,TermsComponentNGrams來實現此功能。

其中一篇文章還介紹瞭如何使用jQuery綁定它,或者您可以使用use ajax-solr

順便說一句,特定的autosuggest component將包含在下一個版本的Solr中。

+0

啊,很好,在做了一些閱讀之後,我認爲NGrams是最受歡迎的方法嗎? – user103219 2010-09-23 19:08:34

+0

@ user103219:是的,ngrams是一個很好的解決方案。 – 2010-09-23 22:12:57

+0

非常感謝,使用了NGrams,讓它工作。在一堆用例上失敗了,但我確信只需要選擇正確的過濾器。 – user103219 2010-09-24 04:09:07

0

你想知道什麼?

如果你的問題是如何讓你的數據在那裏?最簡單的方法是張貼XML文件....

你如何定義你的schema.xml?你不必,有預定義的字符串通配符字段,他們以_s結尾,我認爲。

你是怎麼形成的查詢?...以及容易爲myfield_string:"boa*"

明顯XML?爲什麼? json更小,同樣適合這個目的!

你檢查過官方教程嗎? http://lucene.apache.org/solr/tutorial.html

你想爲單詞或整個文檔做一個自動建議嗎?

首先很容易。 solr甚至有它的非常優化的處理程序。看看這個教程:http://www.mattweber.org/2009/05/02/solr-autosuggest-with-termscomponent-and-jquery/

第二個變得更有趣。如果有人輸入「船隻集合」或類似的東西呢?我個人會建議在最後使用dismax處理器和通配符進行自動建議。那麼字是邏輯OR連接,並且未完成的字在開頭匹配...

+0

對不起,我的印象是Solr只返回XML。是的,我在問如何爲這種情況定義模式。 – user103219 2010-09-23 20:23:16