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