我有一个名称字段定义为的 Solr 集群:
<field name="Name" type="token" indexed="true" stored="true" multiValued="true" omitTermFreqAndPositions="false"/>
<fieldType name="token" class="solr.TextField" omitNorms="true" positionIncrementGap="1">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我在此字段中存储的数据为:
[[\"Želimir\", \"Färber\", \"\", \"\"]]
[[\"Jexper\", \"Testäverde\", \"\", \"\"]]
当我从 Solr 管理控制台查询此字段时,我能够获取文档。我在 Solr 之上有一个 java spring tomcat 应用程序,它构建 Solr 查询并针对 solr 运行它。当我尝试搜索 Java 应用程序时,我没有得到匹配的文档作为返回。
我的 java 应用程序以 UTF-8 编码查询 URL。 我的 java tomcat server.xml 有 URIEncoding="UTF-8"。
似乎没有任何帮助。解决此问题的任何想法都会有所帮助。
查询时在 Solr 日志中查询,
Admin console : [[\"??elimir\",+\"F??rber\",+\"\",+\"\"]] --> Gives match
Java application : [[\"ESelimir\",+\"F????rber\",+\"\",+\"\"]] --> Gives no match
最佳答案
当您从 Java 应用程序调用 Solr 时,将 UTF-8 编码添加到请求 header 。
关于java - Solr查询非UTF-8字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47340905/