【发布时间】:2015-04-11 13:16:24
【问题描述】:
我在 MongoDb 中有一组文档(url:String,title:String,content:String)。 url 是一个唯一字段,包含类似 server://aaa/bbb/1.html 的内容。
我想用 Lucene 索引数据,而不是 Mongo(我可以更改存储)。我要将 url 存储在 Lucene 的索引中。当用户通过关键字搜索某些内容时,我将使用 Lucene 执行查询,读取 url 字段并转到 Mongo 通过 url 提取 doc。效果很好。
但是我不能通过 url 从 Lucene 的索引中删除数据,因为它包含很多不允许的符号。我对 url 字段使用以下设置:
store = true
analyzed = false
indexed = true
(我应该索引这个字段吗?如果我不索引这个字段怎么办?Lucene 会做全扫描吗?集合可以包含数百万个文档)
如果我想获得良好的性能,我应该创建二级索引(Int 或 Long)而不是通过 url 搜索吗?
我使用最新版本的 JVM、Lucene、Ubuntu 和 Mongo。
【问题讨论】:
-
你说的很多不允许的符号是什么意思?你可以在 Lucene 中使用特殊的分析器来保持 URL 字段不变,或者没有大的变化
-
另外,显示一些代码,当您尝试删除文档但它不起作用时
-
我在 Lucene 周围使用 clojure 和 github.com/weavejester/clucy 包装器。不过没关系,我可以围绕IndexWriter编写自己的实现。我对如何在 java 中做到这一点很感兴趣,然后我在 clojure 中实现它。主要问题是我应该分析和索引 url 字段吗?从索引中删除文档是正确的方法吗?
-
什么样的异常?你可以逃避这些字符
标签: lucene