2016-02-08 61 views
0

我发现了一个有趣的Solr查询,它返回搜索结果,但我不明白,单词之间斜线符号的用途是什么?包含斜杠的Solr查询

duties:health/nurse 

有人知道吗?请帮忙。

回答

1

简单。您可以查看分析仪链,了解发生了什么。 我的猜测是,该分析仪链转动/成空间 - 这使得查询到

duties: health nurse 

要找出从配置您的分析仪链 - 通过检查现场

的类型对于启动例如

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

现在我们来看看该类型的定义

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
    <!-- in this example, we will only use synonyms at query time 
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> 
    --> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

如您所见,我们有一个索引分析器和一个查询分析器。

我的查询分析器可以通过使用StandardTokenizerFactory将查询转换成别的东西。

从Solr的维基:

solr.StandardTokenizerFactory

良好的通用标记者剥去许多多余的字符,并设置令牌类型有意义的值。令牌类型仅用于识别相同令牌类型的后续令牌过滤器。没有任何使用StandardTokenizer类型的过滤器。

0

我在想,健康/护士被视为字符串文字,因为它们之间没有空格。健康/护士应该产生与健康/护士不同的结果,对吗?如果是这样,那么健康/护士必须是文档中的索引术语。

相关问题