索引文件的时候 ContentStreamUpdateRequest 中的参数如果是中文会乱码
RT
ContentStreamUpdateRequest up = new ContentStreamUpdateRequest( "/update/extract"); up.addFile(file); up.setParam("literal.file_name", "这个如果是中文会乱码"); server.request(up);
HttpSolrServer 和 ConcurrentUpdateSolrServer 均存在此问题。
大概看了下应该是 post的时候没有对参数做必要的转码操作。solrj这部分好搞,问题是 server 端,需要检查代码找到对传入参数解码的地方 ,比较麻烦,所以先来这问问大家有没有比较简单的解决办法,谢谢。
现在用的solr是最新版 3.6
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
引用来自“begoodluck”的评论
请问
literal.file_name 这个是代表什么意思?谢谢!
请问
literal.file_name 这个是代表什么意思?谢谢!
哥们你还有再修改这个程序吗?我刚刚测试如果用CommonsHttpSolrServer这个已经被弃用的server类上传就不会出现乱码
回复
ft,不会吧,居然会出现这么傻的事情?回头我改过去试试:( 多谢提醒啊
估计得改源码了,我当时简单跟踪了一下,发现没有设置的办法,估计得修改下源码的编码处理,后来因为忙别的也就没来得及整
调试的时候看了一下ContentStreamUpdateRequest 的一些属性,发现contentStream中的contentType没有赋值,应该写成“text/plain; charset=utf-8” 但我找了好久没找到赋值这个contentType的方法
我怎么觉得你的问题跟 solr 没关系呢,因为 lucene 的搜索本身用对了分词器是没有乱码问题的,乱码产生的原因多是跟http参数传递有关系的
求解答。。
我怎么觉得你的问题跟 solr 没关系呢,因为 lucene 的搜索本身用对了分词器是没有乱码问题的,乱码产生的原因多是跟http参数传递有关系的