我使用此配置搜索包含英文产品及其等效的中文数据。
<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编码
这里有什么线索吗?
答案 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文件混合了中文和英文我希望有人找到更高级的答案。