Encoding 关于欧洲字符的Solr查询(Beklæ;dning)
在solr查询搜索中, 搜查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
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