2012-04-19 158 views
0

我遇到一个问题,我试图搜索一个字段,如 modelnumbers:"ModeL SX4"我没有收到任何数据。本场我试图让不区分大小写的样子:solr不区分大小写

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

试图像加跟随我的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”。这也不起作用。

请帮忙。

+0

找到解决办法。它更好的使用 2012-04-19 10:32:15

+0

复制字段为小写,昨天有一个解决方案的问题,有一个快速搜索 – encodes 2012-04-19 10:43:06

回答

1

您的探针位于WordDelimiterFilterFactory中。因为它会将“ModeL SX4”分成“M ode L SX 4”或类似的东西。因此,在标记器之后放置LowerCaseFilterFactory,你应该没问题。

+0

为了我将添加一个建议,除非它是必要的,使用一台分析仪进行查询和索引。这将有助于检查发生了什么问题。并检查“admin/analysis.jsp”以查看您的模式将如何在您的数据集上运行。 – Fuxi 2012-04-19 11:14:20