Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 索尔案例不敏感_Solr_Case Sensitive - Fatal编程技术网

Solr 索尔案例不敏感

Solr 索尔案例不敏感,solr,case-sensitive,Solr,Case Sensitive,我有一个问题,我试图搜索一个领域,如 modelnumbers:“modelsx4”我没有得到任何数据。我试图使该字段不区分大小写,如下所示: <arr name="modelnumbers"> <str>Model sX4</str> </arr> sX4型 尝试了所有可能的解决方案,如在my schema.xml中添加以下内容: <fieldType name="text" class="solr.TextField" positi

我有一个问题,我试图搜索一个领域,如
modelnumbers:“modelsx4”
我没有得到任何数据。我试图使该字段不区分大小写,如下所示:

<arr name="modelnumbers">
<str>Model sX4</str>
</arr>

sX4型
尝试了所有可能的解决方案,如在my schema.xml中添加以下内容:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true" >
   <analyzer type="index">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
      <filter class="solr.LowerCaseFilterFactory" ignoreCase="true"/>
      <filter class="solr.PorterStemFilterFactory"/>
      <filter class="solr.StopFilterFactory"  ignoreCase="true"/>
   </analyzer>

   <analyzer type="query">

      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
      <filter class="solr.LowerCaseFilterFactory" ignoreCase="true"/>
      <filter class="solr.StopFilterFactory"  ignoreCase="true"/>
      <filter class="solr.PorterStemFilterFactory"/>
   </analyzer>
</fieldType>

并将其与字段一起使用,如:

 <field name="modelnumbers" type="text"   indexed="true"  stored="true"  multiValued="true" />

我已经多次发布我的数据了。不工作。 如果我搜索“model sX4”,它会工作,但任何其他修改,如“model sX4”和所有修改都会失败。结果不一致。如果我尝试搜索“24AAB3”,另一个字段看起来像“24AAB3”。这也不起作用


请帮助。

您的问题在于WordDelimiterFilterFactory。因为它会将“型号SX4”拆分为“M ode L SX4”或类似的内容。所以,在标记器后面放上小写的FilterFactory,您应该不会有问题。

找到了解决方案。最好使用小写的t copy字段,昨天有一个问题有一个解决方案,请快速搜索,我将再添加一个建议,除非有必要,使用一个分析器进行查询和索引。这将有助于检查出了什么问题。并检查“admin/analysis.jsp”以查看模式在数据集上的行为。