Configuration Solr q结果与数据库sql结果

Configuration Solr q结果与数据库sql结果,configuration,solr,Configuration,Solr,我正在尝试配置solr以索引oracle数据库。我在schema.xml中启用了前导通配符搜索和各种其他过滤器 <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class=

我正在尝试配置solr以索引oracle数据库。我在schema.xml中启用了前导通配符搜索和各种其他过滤器

<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查询只返回7

  (COLUMN1:(Value0) AND COLUMN2:(Value1)) 
  OR (COLUMN3:(Value2 OR Value3 OR Value4))
  AND (COLUMN4:(Value5)) 
我们只在一个视图上运行,该视图包含所有相关数据。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'

一般来说,如果希望像SQL一样进行逐字匹配,则不应使用已分析的字段类型。例如,在默认模式中,
字符串
字段类型(类solr.StrField)是未分析的


如果您在分析过滤器和标记器中迷失了方向,并且不太了解发生了什么,请尝试在Solr querystring中使用debugQuery=on,或者使用。

有输入错误,表示
Valu0
而不是
Value0
实际值是多少?它们真的是“value0”、“value1”等吗?错误号。实际值是与列相关的字符串类型。。例如,国家是美国等等……我希望结果是相似的,在OR操作和较大的查询中,结果相差很大,但如果我对sql和solr say条件和条件2或条件3进行简短查询,结果相差大约10。我应该期望它们类似吗?请发布实际值,它们与问题相关。但我希望启用前导通配符查询,这将要求我按设计分析字段类型。@sunny您确定要前导通配符,而不仅仅是正确的标记符吗?您(具体)需要什么样的查询?到目前为止,您提到的示例中没有前导通配符查询。我的意思是,我将使用前导通配符查询,因此我已经适当地配置了我的solrfield、text。我们的最终用户将使用诸如contains with、ends with之类的短语,我已将其映射到相应的solr引导通配符查询,并且工作正常。我们将使用所有布尔运算符启用搜索,文本搜索如大于、小于、包含、以..开头等。。
select * from VIEW where 
(COUNTRY_NAME = 'United States' AND ELEMENT_CODE='CT')
 OR  UNIT_STATUS in ('Operating','Order','Shipped') 
   AND FRAME_GR_DISPLAY='06A'