Encoding 关于欧洲字符的Solr查询(Beklæ;dning)

Encoding 关于欧洲字符的Solr查询(Beklæ;dning),encoding,solr,Encoding,Solr,在solr查询搜索中, 搜查 q=*%3A*&fq=grand_cat_str%3ABeklædning Solr将fq解读为:grand_cat_str:BeklÃd ning 并且不返回任何结果。对Bekl*dning执行野生搜索将返回正确的结果 [编辑] 我补充说 但有一个错误: <org.apache.solr.common.SolrException: FieldType: StrField (string) does not support specifying

在solr查询搜索中, 搜查

q=*%3A*&fq=grand_cat_str%3ABeklædning
Solr将fq解读为:
grand_cat_str:BeklÃd ning

并且不返回任何结果。对Bekl*dning执行野生搜索将返回正确的结果

[编辑] 我补充说


但有一个错误:

<org.apache.solr.common.SolrException: FieldType: StrField (string) does not support specifying an analyzer

这与Solr如何处理不在前127个ASCII字符集中的字符有关。最好的建议是将分析器添加到模式中的字段
grand\u cat\u str


如果您需要有关添加分析器的指导,请参考。

如果他的语料库中的大多数文档都使用相同的语言(Dannish?),那么应用ASCIIFoldingFilterFactory很可能是一个错误的选择,这取决于用户输入查询的方式

您是否尝试过对查询进行编码

q=*%3A*&fq=grand_cat_str%3ABekl%C3%A6dning

应该很好

这确实是一个逃避问题。 使用org.apache.solr.client.solrj.util.ClientUtils.escapeQueryChars(字符串)
能够使字符串可读。

添加分析器时出现错误,请参阅原始问题以了解具有更好格式的特定错误。您需要将字段类型上的类更改为
class=“solr.TextField”
,以便允许在字段上指定分析器。
q=*%3A*&fq=grand_cat_str%3ABekl%C3%A6dning