【发布时间】:2011-01-27 03:16:48
【问题描述】:
我没有用过 lucene。上次我问(几个月前,也许一年)人们建议使用 lucene。如果我不应该使用 lucene 我应该使用什么?例如说有这样标记的项目
- 苹果胡萝卜
- 苹果
- 胡萝卜
- 苹果香蕉
如果用户搜索苹果,我不在乎 1,2 和 4 是否有任何偏好。但是我看到很多论坛都这样做,我讨厌的是当用户搜索苹果胡萝卜 2 和 3 时结果很高,而 1 很难即使它与我的搜索更接近也要找到。
我还希望能够搜索胡萝卜-苹果,这只会让我得到 3。我不确定如果我搜索胡萝卜香蕉会发生什么,但无论如何只要标记为 2 和 3 结果的更多项目排名较低然后 1 当我搜索苹果胡萝卜时,我会很高兴。
lucene 能做到这一点吗?我从哪里开始?我尝试查找它,当我这样做时,我会看到很多课程,并且会看到有关文档,网页的教程,但是当我喜欢标记某些东西时,没有人清楚该做什么。如果不是 lucene 我应该用什么来标记?
【问题讨论】:
-
Lucene 非常适合执行此操作。如果您希望 apple 和 apples(复数)匹配,您只需要在索引和查询索引时注意使用正确的语言词干分析器即可。
-
1,2 和 4 在关键字 apple 上的排名(假设您将使用词干分析器来处理复数)不同,因为排名算法会计算该术语在该字段中的相对权重。在案例 2 中,您有 1 次命中,并且字段长度 = 1。在案例 1 和 4 中,您在 2-term 字段中有 1 次命中。粗略地说,这些点击的权重会相差 2 倍。
标签: c# .net lucene lucene.net tagging