0
我想配置solr來索引oracle數據庫。我必須使領導通配符搜索和其他各種過濾器這樣在我的schema.xmlSolr q結果vs數據庫sql結果
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我已經索引在數據庫中的所有搜索欄並使用相同的名稱作爲列名Solr的領域,因此我在選擇查詢db-data-config.xml只是一個select * from視圖;
我們獲得的solr和數據庫中的不同結果的查詢
例如如下的SQL查詢返回1307個記錄
select count(*) from VIEW
where (COLUMN1 = 'Value0' and COLUMN2='Value1')
OR COLUMN3 in ('Value2','Value3','Value4')
AND COLUMN4='Value5'
和solr的查詢作爲下面只返回7
(COLUMN1:(Value0) AND COLUMN2:(Value1))
OR (COLUMN3:(Value2 OR Value3 OR Value4))
AND (COLUMN4:(Value5))
我們只對1個視圖進行操作,其中包含所有相關數據。 solr配置索引到視圖中的所有列,我會認爲結果是相似的。有人可以解釋這種差異嗎?如問
編輯
添加值:Solr的查詢
COUNTRY_NAME:(United States) AND ELEMENT_CODE:(CT)) OR (UNIT_STATUS:(Operating OR Order OR Shipped)) AND (FRAME_GR_DISPLAY:(06A))
數據庫查詢
select * from VIEW where
(COUNTRY_NAME = 'United States' AND ELEMENT_CODE='CT')
OR UNIT_STATUS in ('Operating','Order','Shipped')
AND FRAME_GR_DISPLAY='06A'
有一個錯字,說`Valu0`而不是`Value0` – 2011-12-15 16:44:46
什麼是實際值?他們真的是'value0','value1'等嗎? – 2011-12-15 17:19:50