1

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

        <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 编码

这里有什么线索吗?

4

1 回答 1

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 文件混合在中文和英文之间我希望有人找到更高级的答案。

于 2012-11-08T07:27:06.173 回答