0

我已经安装了 solr 3.5 我想搜索像 enseñé étnico castaño después 这样的单词(西班牙语单词)

随着上升ñ,é等

但是 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"/>

但仍然无法使用 ascent 搜索西班牙语单词..

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

谢谢

4

3 回答 3

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>
于 2014-05-02T20:28:36.570 回答
0

您可以使用 Solr 分析器检查您的查询和索引内容是如何被分析的:

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

你只是这样做:

/select?q=name:castaño
于 2013-05-19T11:58:48.370 回答
0

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

它将上升的字符转换为不上升的对应物。把它放在你的 schema.xml 中:

<filter class="solr.ASCIIFoldingFilterFactory"/>

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

于 2013-12-18T11:55:30.240 回答