2016-02-08 91 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

我在想,健康/護士被視爲字符串文字,因爲它們之間沒有空格。健康/護士應該產生與健康/護士不同的結果,對嗎?如果是這樣,那麼健康/護士必須是文檔中的索引術語。

相關問題