2016-07-31 86 views
0

我正在使用Solr。我需要尋找那些我們通過使用像 例如我要搜索X1碳獲取關鍵字, 在我的SQL我搜索我得到正確的結果像使用自定義類型搜索solr

select * from table where name like "%x1 carbon%" 

Solr中我得到正確的結果,但我DONOT得到的條目與比方說,但我喜歡用 「%文本%」

X1碳 X1碳 X1碳 獲得在MySQL中下方的條目.......... .......

我的模式是如下

<fieldType name="text_general_k" class="solr.TextField"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

我應該怎麼做,以獲得上述vaules也喜歡

someword_x1碳

someword_x1 carbon_?

這種模式的IM沒有得到

<fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 

    <fieldType name="text_general_k" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" /> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
</fieldType> 

林連接查詢analyuzer的

enter image description here

+0

您是否嘗試過使用數學部分的配置? – Oyeme

回答

1

你可以試試下面的自定義字段類型爲您現場的sceenshot。

<fieldType name="likeField" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" /> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
</fieldType> 

與下面的字符串值尼日利亞被分解爲以下條款

Nigerian => "ni", "nig", "nige", "niger", "nigeri", "nigeria", "nigeria", "nigerian" 
+0

不,我很抱歉沒有得到正確的結果,基本上我需要它訪問_x1碳,x1碳_和_x1碳_也是.............. –

+1

您是否嘗試過上述fieldType字段並重新編制數據?您是否在solr分析頁面上嘗試了相同的方法?你能告訴我所有的工作和所有的搜索沒有工作? –

+0

感謝您的幫助,是的..我用上面的設置試過了,問題是,它是不是能夠得到像 _x1碳 X1 carbon_ _x1 carbon_搜索結果 其他所有結果都很好,「即時得到結果一樣x1碳「。 我在solr查詢中使用了field8 :(「x1碳」) –