2017-06-14 61 views
0

我是Solr中的新成員。 我在Solr中有來自MySQL JDBC dataimport的字段。該字段的數據庫列的值是「test,test2,test3」。如果我在Solr中選擇字段類型solr中字段的拆分值與另一個值進行比較

  1. 字段類型是字符串,值是[「test,test2,test3」]。
  2. 字段類型爲字符串值「測試,TEST2,TEST3」

我要訪問Solr中的每個值與「另一個字符串」比較。所以「test1」與「另一個字符串」比較,「test2」與「另一個字符串」比較,等等。我如何在Solr中做到這一點?也許它的查詢或什麼?使用循環或什麼或一些棘手?

回答

0

你可以使用一個不同的字段類型,它具有一個分隔符,它用逗號分隔。你的情況,你可以像這樣的東西添加到您的架構的相關部分:

<types> 
<fieldType class="solr.TextField" name="comma_separated"> 
    <analyzer> 
     <tokenizer class="solr.SimplePatternTokenizerFactory" pattern=","/> 
    </analyzer> 
</fieldType> 
</types> 

<fields> 
<field name="my_comma_separated_field" indexed="true" stored="true" multiValued="true" type="comma_separated" /> 
</fields> 

現在,當你索引到comma_separated領域,你的價值觀將被拆分的逗號,你就可以搜索每一個。

PS。根據您的fieldType定義添加其他過濾器。

您可以找到標記器文檔here

+0

其實我找到解決方案。當通過數據庫檢索(從表中選擇*)時,我分割該字符串,並使Solr模式中的字段處理每個分割的字符串。幸運的是,我只有3個用逗號分隔的字符串。無論如何,你的解決方案似乎工作,但我還沒有嘗試過這種解決方案,也許下次。但是,感謝解決方案 –

+0

請嘗試此解決方案,然後才能接受它,否則可能會誤導其他人引用此問題。 –

相關問題