2012-07-19 72 views
0

我有一個包含很多字的領域,例如:Solr的 - 搜索字符串中的字符

「我的名字是妮可,我使用Solr工作」

,我需要的Solr返回這個文件如果我搜索這個詞(注意,詞序不作爲索引文本):

「上午名稱以」

我使用這個配置

<fieldType name="propertiesField" class="solr.TextField"> 
    <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.PatternTokenizerFactory" pattern="-" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
</fieldType> 

與此查詢:

選擇/ Q = properties_all:AM-名稱與&版= 2.2 &開始= 0 &行= 10 &縮進=上

,當我與analize它分析器,這些單詞突出顯示,但是當我搜索時沒有找到文檔。

感謝您的幫助!

回答

1

如果沒有充分的理由使用不同的索引和查詢時間分析器,請不要。

我會喜歡的字段類型:

<fieldType name="propertiesField" class="solr.TextField"> 
    <analyzer> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
</fieldType> 

另外設置默認操作爲AND(模式文件)

<solrQueryParser defaultOperator="AND"/> 

然後查詢Solr的:

select/?q=properties_all:(am name with)&version=2.2&start=0&rows=10&indent=on 
+0

Thaks!現在如果我只需要在查詢時間添加SynonymFilter,我該怎麼做? – Nicole 2012-07-19 15:30:23

+0

爲什麼你只想在查詢時間添加它?如果有強烈的理由這樣做,請使用原始字段類型conf(但在兩者中使用相同的標記器)並在小寫後加上同義詞過濾器 – Fuxi 2012-07-19 15:56:01

+0

@Fuxi如果我還需要執行該命令,該怎麼辦? – 2015-09-17 07:14:01