2012-08-23 70 views
0

我有2個版本的solr在我的機器上工作。說SolrVer1SolrVer2Solr - 通配符搜索隨着方法的不同而變化

SolrVer1已經應用,下面詞幹法字段類型text_en_splitting

<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt" ignoreCase="true"/> 
<filter class="solr.PorterStemFilterFactory" ignoreCase="true"/> 

SolrVer2已經應用,下面詞幹法字段類型text_en_splitting

​​

它適用於經常幾乎相同搜索,但在使用通配符搜索時,通配符搜索不會給出語法結果SolrVer1

像搜索ray*,SolrVer1返回非常少的數據與SolrVer2相比。當我觀察結果,然後我發現SolrVer1不返回數據只有rayrays

我不知道我應該在哪裏使用SnowballPorterFilterFactory和我應該在哪裏使用PorterStemFilterFactory。他們有什麼優點和缺點?

任何人都可以有這個想法嗎?

感謝

回答

1

需要知道什麼ray的詞幹輸出,rays

嘗試在Porter stemmer在線工具中標註它們:http://qaa.ath.cx/porter_js_demo.html。它輸出rai!這就是你沒有與波特詞幹進行ray*匹配的原因。

這裏是一個雪球推杆工具:http://snowball.tartarus.org/demo.php。 這輸出rayrayrays這就是爲什麼你會得到結果。

您可能需要閱讀本作比較兩個詞幹:http://snowball.tartarus.org/texts/introduction.html

看起來像滾雪球旨在解決波特的這種缺憾。

+0

感謝@arun,爲您的答覆。它非常有幫助。所以你建議我應該使用'SnowballPorterFilterFactory'? – meghana

+0

一般來說,雪球(包括波特)莖稈被認爲是侵略性的,這意味着它們會將很多詞映射到相同的莖。很難告訴你應該使用哪一個stemmer,因爲這取決於你的搜索需求。我會建議詢問你的客戶的例子。您應該閱讀https://wiki.apache.org/solr/LanguageAnalysis#Stemming來了解各種Solr詞幹的差異,並根據您的需求選擇正確的詞彙。 – arun

+0

感謝@arun您的回覆,我想您是對的,我會問我的客戶的例子。:) – meghana

0

Analyzers

On wildcard and fuzzy searches, no text analysis is performed on the search word. 

由於沒有分析在查詢時做了wilcard搜索,因此會詞幹在查詢時間來施加。
結果將根據莖生產者的不同而不同。

+0

謝謝@Jayendra,爲您的答覆。是的,我看到通配符搜索結果的不同取決於應用於它們的stemmer。 – meghana