2016-12-07 220 views
0

內我在託管模式,它看起來像這樣有一個字段:SOLR不區分大小寫

<field name="Title" type="strings"> 
     <analyzer type="index"> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="select"> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
</field> 

如果我搜索的單詞蜘蛛俠我得到15個結果。但是,我搜索(標題:蜘蛛俠)我得到0結果。我需要能夠在查詢中執行子組,因此爲什麼第一個選項不是選項。我錯過了明顯的東西嗎?

同樣搜索SpiderMan返回15個結果,但即使使用模糊搜索和標題(Title:spiderman~)我只得到1個結果。

+0

你混合字段類型和現場一起...?據我所知fieldType應該被定義爲單獨和字段分開.. –

+0

我真的是SOLR的初學者,所以請詳細說明... – Antony

+0

這就是託管模式生成的東西 – Antony

回答

1

在schema.xml文件中添加這些條目。 定義的字段類型如下圖所示:

<fieldType name="title" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" preserveOriginal="1" catenateAll="1" splitOnCaseChange="0"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
    </fieldType> 

定義字段象下面這樣:

<field name="title" type="title" indexed="true" stored="true"/> 
+0

Super Abhijit - 謝謝! – Antony