2012-09-23 57 views
1

我想索引一些中文文檔與索爾,但它看起來像索爾不索引一些分詞。爲什麼索爾沒有索引一些分詞

我使用的分析儀是IK分析儀http://code.google.com/p/ik-analyzer/

的字段要被索引:

<field name="hospital_alias_splitted" type="cn_ik" indexed="true" stored="true" multiValued="true" omitNorms="false"/> 

cn_ik定義:

<fieldType name="cn_ik" class="solr.TextField" positionIncrementGap="100"> 
<analyzer> 
    <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false"/> 
</analyzer> 

例如,將要編制索引的單詞是 「AB」(沒有引號)。在使用中文分析器分詞後,我得到了3個令牌,分別是「AB」,「A」和「B」。

正如我們所看到的,第一個標記「AB」包含以下兩個標記。

將這些標記送到Solr後,它看起來像索爾唯一的索引「AB」,「A」和「B」被忽略。因爲當我搜索「A」或搜索「B」時沒有得到任何結果。

我猜索拉索引「AB」時,它已經到達索引詞的末尾,所以「A」和「B」被忽略。

使用盧克和分析請求處理程序不會顯示更多提示。 我不確定這是Solr的缺陷還是功能。

有何評論或建議?

謝謝:)

+0

你能否從架構添加字段規範呢? – Fuxi

+0

將架構添加到原文 – emlaggr

+0

看起來這是IK分段器的一個bug,已經在新的IK代碼中修復。如果分析器和查詢解析器使用不同的segementation模式(智能模式和最佳粒度模式),則會再現此錯誤。 – emlaggr

回答

0

(由於我不能對這個問題發表評論,我在這裏打字)

我建議你用不同的analzyers嘗試。由於您沒有告訴我們您的分析儀,我假設您正在使用CJK等默認設置。

據我所知,還有更多漢語和中文等語言的分析器,兩個詞之間沒有空格。他們也可能會幫助你。

這將是非常高興看到你對那場,雖然架構的某些部分...

編輯:您還可以檢查this link

+0

在原始文章中添加架構。 – emlaggr

+0

好吧......雖然我住在中國,但我的中文不夠好,不能閱讀代碼中的筆記,所以我會嘗試使用代碼......但與此同時,您可以使用其他分析器來嘗試嗎?除了一些基本情況外,我還沒有處理過CJK,所以我不確定哪個分析儀可以解決這個問題......但據我所知,分析儀的行爲不同。例如,你可以解析爲你好,你,好在分析儀上..我的另一個卑鄙的想法是建議你在中文板上發佈類似的問題..因爲大部分老外不會閱讀代碼中的文檔;) – stephanruhl