索引时如何防止solr解码url?

时间:2012-06-27 07:06:02

标签: java solr solrj

我正在使用Solrj索引Solr中的文档,其中一个字段是url。在创建solr文档并随后将其传递给SolrServer时,我没有进行任何显式解码,以保持url的原始格式。但是,一旦它被索引,网址就会被解码。

这是一个包含撇号的测试示例。


http://test.com/test/Help/What%e2%80%99s_N1

在solr索引中,它被解码为


http://test.com/test/Help/What's_N1

以下是示例代码:


SolrServer solrServer = new StreamingUpdateSolrServer(solrPostUrl, solrQueueSize, solrThreads);
SolrInputDocument solrDoc = new SolrInputDocument();
solrDoc.addField("url", "http://test.com/test/Help/What%e2%80%99s_N1");
UpdateResponse solrResponse = solrServer.add(solrDoc);

我查看了SolrInputDocument对象,它确实有正确的格式,即编码版本。

如果有人可以提供指示,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

我认为这是因为你的标记器

  

一个很好的通用标记器,剥离了许多无关的   字符并将标记类型设置为有意义的值。令牌类型是   仅对后续的类型感知的令牌过滤器有用   相同的令牌类型。没有任何过滤器使用   StandardTokenizer的类型。

关于standardTokenizer

查看here

您可以在solr / schema.xml中更改所有这些行为