2016-04-27 53 views
0

我與Solr5.2.1工作,並希望我的指標變量(鏈接)分成兩個不同的值(原始鏈接,核心環節)Solr的索引網頁鏈接

例如,如果有一個輸入http://wiki.apache.org/solr/然後,原來的鏈接是http://wiki.apache.org/solr/本身,核心鏈接是wiki.apache.org

我目前的Solr索引核心鏈接,但不是原始鏈接。 請幫我解決我的solr配置與索引原始鏈接

在我的schema.xml中,鏈接定義如下,並使用「text_general」。

<field name="link" type="text_general" indexed="true" stored="true" required="false" /> 

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true"> 
<analyzer type="index"> 
<tokenizer class="solr.StandardTokenizerFactory"/> 
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 

要得到原始鏈接,我應該使用multiValued =「true」嗎?

回答

0

你應該讓你的鏈接字段接受多個值

是用多值=「真」嘗試字段名「鏈接」既然你想指數雙雙鏈接字符串值成相同的字段。使用StandardTokenizer,您的原始鏈接將被拆分。在這裏它將字符「/」看作分隔符。在這裏你原來的鏈接http://wiki.apache.org/solr/將成爲標記爲

HTTP

wiki.apache.org

Solr的

0

您可以爲核心環節的另一個字段,然後Solr中的文檔將具有核心鏈接和原始鏈接。

我建議不要在相同字段中添加多值真值。

在未來,如果你要鏈接原創和核心分開,然後分開場會爲你工作。

但是,是有在其添加到同一個字段,如果你不想攜帶任何單獨的搜索和分析,沒有壞處。

0

你不應該使用標準分詞器爲您schema.xml中提到,因爲它把「/」作爲分隔符。相反的,你應該使用Keyword Tokenizer如圖所示,

<analyzer type="index"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 

和多值的字段可以讓我們存儲在同一領域多個值。所以沒有使用multiValued =「true」。

+0

就像你提到的那樣,我將Standard Tokenizer Factory改爲Keyword Tokenizer。之後,它只給出原始鏈接。我如何索引原始鏈接和核心鏈接? –

+0

如果你還想索引核心鏈接,那麼在schema.xml中創建一個單獨的字段'url_core',並創建一個fieldType作爲'text_url_core'並定義一個正則表達式標記器,如圖所示, ' <字段類型名稱= 」text_url_core「 類= 」solr.TextField「 positionIncrementGap = 」100「> ' – hp36