索引文件的时候 ContentStreamUpdateRequest 中的参数如果是中文会乱码

索引文件的时候 ContentStreamUpdateRequest 中的参数如果是中文会乱码

冷默言语 发布于 2021-11-25 字数 588 浏览 699 回复 9

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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

少女净妖师 2021-12-01 9 楼

引用来自“begoodluck”的评论

请问
literal.file_name 这个是代表什么意思?谢谢!

输什么也不输骨气 2021-12-01 8 楼

请问
literal.file_name 这个是代表什么意思?谢谢!

坐在坟头思考人生 2021-12-01 7 楼

哥们你还有再修改这个程序吗?我刚刚测试如果用CommonsHttpSolrServer这个已经被弃用的server类上传就不会出现乱码

旧城烟雨 2021-12-01 6 楼

回复
ft,不会吧,居然会出现这么傻的事情?回头我改过去试试:( 多谢提醒啊

无人问我粥可暖 2021-12-01 5 楼

估计得改源码了,我当时简单跟踪了一下,发现没有设置的办法,估计得修改下源码的编码处理,后来因为忙别的也就没来得及整    

掩饰不了的爱 2021-12-01 4 楼

调试的时候看了一下ContentStreamUpdateRequest 的一些属性,发现contentStream中的contentType没有赋值,应该写成“text/plain; charset=utf-8”  但我找了好久没找到赋值这个contentType的方法

彩扇题诗 2021-11-30 3 楼

我怎么觉得你的问题跟 solr 没关系呢,因为 lucene 的搜索本身用对了分词器是没有乱码问题的,乱码产生的原因多是跟http参数传递有关系的

归属感 2021-11-30 2 楼

求解答。。

回忆凄美了谁 2021-11-25 1 楼

我怎么觉得你的问题跟 solr 没关系呢,因为 lucene 的搜索本身用对了分词器是没有乱码问题的,乱码产生的原因多是跟http参数传递有关系的