solr schema同义词问题

时间:2012-11-04 17:33:55

标签: search solr lucene multilingual

我使用此配置搜索包含英文产品及其等效的中文数据。

        <fieldType name="text_synm" class="solr.TextField">
        <analyzer type="index">

        <tokenizer class="solr.CJKTokenizerFactory"/>

            <filter class="solr.SynonymFilterFactory" synonyms="synonym.txt" ignoreCase="true" expand="false"/>
              <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnNumerics="1" />
               <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>

        <analyzer type="query">

            <tokenizer class="solr.CJKTokenizerFactory"/>

              <filter class="solr.SynonymFilterFactory" synonyms="synonym.txt" ignoreCase="true" expand="false"/>
              <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnNumerics="1" />
               <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>
    </fieldType>

但是当我在solr admin中搜索中文时,它没有给我任何结果

我尝试使用

<tokenizer class="solr.WhitespaceTokenizerFactory"/>

而不是

<tokenizer class="solr.CJKTokenizerFactory"/>

但没有结果 我确保synonym.txt是utf-8编码

这里有什么线索吗?

1 个答案:

答案 0 :(得分:0)

我认为我应该编辑apach / conf / server.xml并添加此

URIEncoding="UTF-8" useBodyEncodingForURI = "false"

以连接器标签为例

    <Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI = "false" />

也在

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443">

我应该添加这个

URIEncoding="UTF-8"

在我的情况下它不起作用的任何方式可能是因为我的synonym.txt文件混合了中文和英文我希望有人找到更高级的答案。