我正在使用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对象,它确实有正确的格式,即编码版本。
如果有人可以提供指示,我将不胜感激。
由于
答案 0 :(得分:1)
我认为这是因为你的标记器
一个很好的通用标记器,剥离了许多无关的 字符并将标记类型设置为有意义的值。令牌类型是 仅对后续的类型感知的令牌过滤器有用 相同的令牌类型。没有任何过滤器使用 StandardTokenizer的类型。
关于standardTokenizer
查看here
您可以在solr / schema.xml中更改所有这些行为