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