如何从文档ID中删除Lucene索引中的数据?

时间:2015-02-11 08:33:12

标签: lucene

我在MongoDb中有一组文档(url:String,title:String,content:String)。 url是一个唯一的字段,包含诸如server://aaa/bbb/1.html。

之类的内容

我想用Lucene索引数据,而不是Mongo(我可以更改存储)。我要在Lucene的索引中存储网址。当用户按关键字搜索某些内容时,我将使用Lucene执行查询,读取url字段并转到Mongo以通过URL提取doc。效果很好。

但我无法通过网址从Lucene的索引中删除数据,因为它包含许多不允许的符号。我使用以下建立的url字段:

store = true
analyzed = false
indexed = true 

(我应该为这个字段编制索引吗?如果我没有为这个字段编制索引怎么办?Lucene会进行全面扫描吗?集合可以包含数百万个文档)

如果我想要有良好的表现,我应该创建二级索引(Int或Long)并且不要通过url搜索?

我使用最新版本的JVM,Lucene,Ubuntu和Mongo。

1 个答案:

答案 0 :(得分:0)

您需要在查询中对您的网址进行正确编码,它应该有所帮助。

E.g。在你的情况下, some.url / foo 应该作为 some.url%2Ffoo 在查询中传递。您可以尝试在线解码/编码 - http://www.url-encode-decode.com/

有关在Solr查询中转义字符的详细信息,请查看此处 - https://wiki.apache.org/solr/SolrQuerySyntax#NOTE:_URL_Escaping_Special_Characters