无法在solr中搜索带重音的西班牙语单词

时间:2013-05-18 17:29:15

标签: solr

我已安装solr 3.5 我想搜索一下单词(西班牙语单词) enseñé étnico 卡斯塔诺 después

与ascent,é等。

但solr并不是从索引中搜索这样的单词。 我用过

 <!-- Spanish -->
    <fieldType name="text_es" class="solr.TextField" positionIncrementGap="100">
      <analyzer> 
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_es.txt" format="snowball" enablePositionIncrements="true"/>
        <filter class="solr.SpanishLightStemFilterFactory"/>
        <!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> -->
      </analyzer>
    </fieldType>

喜欢:

<field name="name" type="text_es" indexed="true" stored="true"/>
<field name="features" type="text_es" indexed="true" stored="true" multiValued="true"/>

但仍然无法用上升搜索西班牙语单词..

如果我遗失了什么,请告诉我?

由于

3 个答案:

答案 0 :(得分:0)

您可以使用Solr分析仪查看您的查询和索引内容的分析方式:

http://192.168.0.1:8080/solr/#/your_core_name/analysis

你只是这样做:

/select?q=name:castaño

答案 1 :(得分:0)

您可以尝试使用ASCIIFoldingFilterFactory过滤器。

它将具有上升的字符转换为它们的无上升对应物。 把它放在schema.xml中:

<filter class="solr.ASCIIFoldingFilterFactory"/>

注意:缺点是像“cañon”和“canon”这样的词语现在是等价的,并且两者都是相同的文件IIRC。

答案 2 :(得分:0)

你有这个:

<fieldType name="text_es" class="solr.TextField" positionIncrementGap="100">
      <analyzer> 
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_es.txt" format="snowball" enablePositionIncrements="true"/>
        <filter class="solr.SpanishLightStemFilterFactory"/>
        <!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> -->
      </analyzer>
    </fieldType>

但它适用于它:

<fieldType name="text_es" class="solr.TextField" positionIncrementGap="100">
      <analyzer> 
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_es.txt" format="snowball" enablePositionIncrements="true"/>
       <!--  <filter class="solr.SpanishLightStemFilterFactory"/> -->
        <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/>
      </analyzer>
    </fieldType>