我想連字符/破折號引起的Solr只提取格式類似於正NNNNNNN挑戰與Solr的Lucene的
本來我希望能保持滿票一起一票的第二七位數部分。根據文件數字與數字應保持在一起,但在錘掉了這個問題一段時間,看看代碼我不認爲是這樣的。 Solr總是生成兩個詞。因此,而不是n的第一個數字的大量匹配,我想我可以從第二部分獲得更好的查詢結果。代的一種破折號:
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="\b\d[A](\d\d\d\d\d\d\d)\b" replacement="$1" replace="all"
maxBlockChars="20000"/>
將解析1A1234567精細 但 - \ B」替換= 「$ 1」 替換= 「所有」 maxBlockChars = 「20000」/>
不會解析1-1234567
所以它看起來像只是一個連字符的問題我試過 - (逃脫)和[ - ]和\ u002D和\ X {} 45和\ x045沒有成功
我。我曾嘗試在我身邊放置炭過濾器T:
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping.txt"/>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="\b\d[-](\d\d\d\d\d\d\d)\b" replacement="$1" replace="all" maxBlockChars="20000"/>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping2.txt"/>
與映射:
「 - 」=> 「Z」
然後
「Z」=> 「 - 」
我看起來像連字符在Flex標記化中被吃掉,甚至不可用於char過濾器。
有沒有人在Solr/Lucene中使用連字符/短劃線獲得更多成功?由於
通常,過濾器應用於分析器和標記器之後,所以是的,那些連字符已經消失了。我的問題是:這個領域是否需要進行分析和標記化?如果它只是一個票號,那麼我會說使用[KeywordAnalyzer](http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/analysis/KeywordAnalyzer.html),或者也許可以將該字段設置爲[StrField](http://lucene.apache.org/solr/api-4_0_0-BETA/org/apache/solr/schema/StrField.html),或者其他內容。 – femtoRgon
聽起來好像在構建solr文檔的應用程序中做起來可能更容易。 –