2012-11-21 60 views
4

我們有NUMERICS一個破折號即n-NNNNNNN的Solr 3.6.1拆分單詞邊界

鏈接http://lucidworks.lucidimagination.com/display/solr/Tokenizers(在標準分詞和經典標記生成器的部分)除以故障單格式意味着在Unicode標準附錄UAX#29的支持前後:

除非單詞中有數字,否則單詞在連字符中被拆分,在這種情況下令牌不會被拆分,並且數字和連字符是保存。

我們的Solr安裝僅使用StandardTokenizerFactory,但此故障單格式正在破折號查詢中拆分。我是solr/lucene的新手。我已經下載了3.6.1的代碼,並且評論意味着相反的意思(除非虛線數字仍被視爲數字)。我無法跟隨萊克斯處理:產生

  • 令牌是以下類型的:
    • <ALPHANUM>:的字母序列和數字字符
    • <NUM>:數字
    • <SOUTHEAST_ASIAN>:來自南亞和東南亞
    • 亞洲語言,包括泰國,老撾,緬甸和柬埔寨
    • <表意>字符序列:一個CJKV表意字符
    • <平假名>:單平假名字符

鈣ñ任何人澄清這個謝謝。

+0

我可以確認您至少在處理模式/^\ d {1,5} - \ d $ /時需要使用經典分析器。我想知道輸入中的最初的單個數字是否是問題? –

+0

我實際上並沒有使用模式過濾器。只是StandardTokenizerFactory。 – user1840253

+0

對不起,我的意思是數據中的輸入模式。我已經看到與帶有LOINC號碼的3.x +標準分析儀相同的行爲,這些號碼是1-5位數,後跟一個' - '和一個數字。 –

回答

1

您需要正則表達式模式標記器。該標記器使用Java正則表達式將輸入文本流分解爲標記。由pattern參數提供的表達式可以解釋爲分隔符,也可以將應該從文本中提取的模式作爲標記進行匹配。

有關Java正則表達式語法的更多信息,請參閱Javadocs for java.util.regex.Pattern