2011-01-20 42 views
1

嘿夥計們, 我試圖在應用程序中實現一些搜索功能。Solr/SolrNet - 使用通配符進行逐字母搜索

Solr 1.4.1在Tomcat7上運行 使用View im索引連接到MS SQLServer的JDBC連接 Solr已完成索引並且索引正在工作。

要搜索和我創建了一個小測試WCF服務與Solr的溝通(與我們的主要服務後實施)。

目的是在我們的主應用程序中實現一個文本框。在此文本字段中,用戶可以開始輸入諸如畫筆之類的東西,並隨着越來越多的字符被輸入逐漸過濾對象列表。

這與Solr一起工作得很好,可以達到某個特定的點。使用通配符星號在我的查詢結束,因此IM扔了很多的請求像 P * PA * 疼痛* 漆*林

等在服務器和它的返回結果就好了(相當實際上非常快)。唯一的問題是,一旦用戶鍵入整個單詞,查詢就是畫筆*,此時solr返回0結果。

如此看來,查詢+通配符只能查詢+東西,而不是查詢+什麼

我設法在Lucene.Net這個工作,但心不是Solr的做事似乎以同樣的方式。

任何意見,你可以給我實施這樣的功能?

沒有太多的代碼看,因爲IM使用SolrNet:http://pastebin.com/tXpe4YUe

我想,這事做與分析器和語法分析器,但即時通訊尚未到這一點的Solr知道去哪裏看:)

回答

0

詞根似乎是問題的根源。我使用text_ws的克隆來修復它,而不是該類型的文本。 我對scema.xml所做的更改:http://pastebin.com/xaJZDgY4

禁用莖幹並啓用小寫索引。只要所有查詢都是小寫,他們應該總是給出結果(如果有的話)。

問題似乎是,分析儀不使用通配符工作,所以使用通配符時,將使約翰尼Johni或Johnni的結果的邏輯是「破」。

如果你面臨的問題similiar和我的解決方案在這裏犯規相當的工作,你可以添加debugQuery =到您的查詢字符串,並多看一些關於怎麼回事。這幫助我縮小了問題的範圍。

2

我不會在Solr中實現帶前綴通配符查詢的建議。還有其他更適合做這件事的機制。請參閱:

+0

看起來interresting,但它似乎並沒有做什麼,我被採訪。這裏是架構即時通訊使用:http://pastebin.com/fF5Kisgd我想要的是那些部分或完全匹配的東西在「文字「,我要求。文本是數據庫中給定行的所有字段的連續字符(使用視圖) – mfriis 2011-01-20 16:11:25