我通过apache听说过库Lucene
,我在互联网上搜索了lucene
使用的搜索算法,但是我找不到任何东西,请告诉我任何人这个。我的意思是lucene使用的算法是Linear Search
,Binary tree Search
....
答案 0 :(得分:2)
Lucene是Information Retrieval (IR)的库,它专注于如何根据索引搜索大型语料库中的查询(关键字),类似于谷歌所做的(某些事情)。 / p>
IR最基本的想法是从语料库中构建inverted index,从每个单词映射到包含它的所有文档。
例如,如果你有:
d1 = as good as it gets and more
d2 = the good the bad and the ugly
d3 = Is it ugly and bad? It is, and more!
它将构建一个看起来像这样的倒排索引:
as: d1,
good: d1, d2
it: d1, d3
gets: d1
and: d1, d2, d3
...
现在,如果您搜索单词(词语)'它,索引可以高效且轻松地告诉您“它”#39;出现在d1和d2中。这是构建索引并进行搜索的最基本概念。
当然,还有更多内容,我们鼓励您了解有关这些算法的更多信息。这实际上是一个巨大的研究领域,每天都会发表新的研究成果。要了解更多信息,我发现Manning的Introduction to Information Retrieval非常有帮助。