2014-05-19 31 views
4

我正在嘗試配置Lucene/Solr以正確索引來自新聞文章的單詞。由於目前是「開箱即用」使用Solr 3.4 WordDelimitedFilterFactory指標: 在Solr中用撇號的單詞進行適當的單詞拆分

,但她會在「她」會成爲她,LL,她和外殼。我絕對不希望這匹配「殼」。這不是預期的詞。

目前我的文字會突破WhitespaceTokenizerFactory,然後StopFilterFactory,然後WodDelimiterFilterFactory設置爲: generateWordParts = 「1」 generateNumberParts = 「1」 catenateWords = 「1」 catenateNumbers = 「1」 catenateAll = 「0」 splitOnCaseChange = 「0」 splitOnNumerics = 「0」 preserveOriginal = 「1」 類型= 「specialtypes.txt」

我試圖說撇號被認爲是在specialtypes.txt字母字符說: ' => ALPHA
但隨後她變成了一個詞,小馬和公司也是如此,這不是我想要的。

任何想法?

+0

在這種情況下你期望什麼:斯嘉麗奧哈拉? – notdang

+0

我想要蟲子來bug和阿諾德成爲阿諾德(英文佔有慾),但我想她會成爲她而不是殼 – Uberbug

+0

對不起@notdang我誤讀了。我希望Scarlet O'Hara成爲完美世界的Ohara – Uberbug

回答

1

嘗試使用保護=「protwords.txt」作爲solr.WordDelimiterFilterFactory過濾器設置的一部分:https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilterFactory

您可以添加的話,將有可能引起分裂的問題上撇號(像她很快,他會的,我們會的,我們)。這將在沒有任何進一步的標記或過濾的情況下對它們進行索引,同時繼續將單詞放在撇號上以用於所有格和其他用途。

+1

這個工作!起初我很困惑,因爲我在solr.KeywordMarkerFilterFactory中保護了=「protwords.txt」,這沒有幫助。它需要在solr.WordDelimiterFilterFactory部分專門調用。 – Uberbug

2

添加

solr.ApostropheFilterFactory

根據文檔:

條所有字符的撇號(包括撇號 本身)之後。

示例:「Türkiye'de」,「2003'te」==>「Türkiye」,「2003」。

+0

這不適合我想要的東西,因爲我不想讓她成爲她,我希望它保持她在這種情況下的身份。但我希望Bug成爲Bug,保留WhitespaceTokenizerFactory中Lucene的英文佔有過濾器的工作原理 – Uberbug

+0

也似乎solr.ApostropheFilterFactory直到4.8 – Uberbug