我对用于在独立桌面应用程序中构建搜索的Examine感兴趣,用于搜索数据库表以及office/.pdf文件
这看起来像是Lucene/examine的一个很好的场景
然而,那里的文档很少,虽然我有丰富的SQL全文搜索经验,但Lucene完全是另一种野兽,因此需要帮助/指示如何开始/从哪里开始
是的,我在谷歌上搜索了一下,但没有找到任何资源,因为这些术语非常常见( lucene examine等)。
发布于 2012-10-05 11:34:47
首先要知道的是,Lucene.NET是Lucene的逐行端口。它只有次要的方面是特定于.NET的,所以您会发现Java Lucene的大部分内容也适用于.NET版本。实际上,经过多年的孵化,这个项目刚刚成为一个成熟的.NET项目。
现在,我同意Vedran的观点,Lucene in Action这本书是一种真正的享受,不仅是为了快速地掌握速度(天知道,Lucene是快速的),而且还可以深入到帮助您解决问题的血淋淋的细节。
如果你想从在线材料开始,看起来this intro可以帮你一把。它已经有近10年的历史了,但快速浏览一下,我会发现它大体上仍然存在。它解决了搜索(索引/查询)的两个方面,同时用实际的Java代码演示了它,这些代码应该可以很容易地移植到C#。
简而言之,这些是亮点
要写入索引,请使用IndexSearcher
有了这些信息,你已经可以设置一个最小的工作示例了。
分析器
下一步是深入研究标记化。不同的分析器进行不同的标记化。它们允许您忽略短词、在非字母数字字符处拆分或进行词干分析(SnowballAnalyzer)。了解哪些分析器可用并选择正确的分析器对于使Lucene适合您的问题至关重要。
查询中
索引数据可以被查询,我想说是一种灵活的方式,但有其自身的局限性。由于Lucene的性质,像否定、排序和范围这样的事情会让你很头疼。
你必须意识到的一件事是,Lucene实际上只不过是一个超高效的字典,你可以用它来进行查找。例如,这就解释了为什么否定是特殊的。你不能搜索缺少的东西,但是你可以搜索"MyField:false“。搜索1到3之间的数字,通常会创建一个查询,查找1、2和3。在处理日期时,您必须确保它们以可排序的方式进行索引(例如20121005)
社区
如果你遇到问题:Lucene.NET newsgroup已经被证明是非常有帮助和响应性的。
SOLR.NET
你很有可能会遇到一些限制,比如需要刻面。SOLR.NET是建立在Lucene.NET之上的,它解决了一些原本需要你费很大力气才能完成的事情。不过我从来没有真正用过它。
检查
我也没有检查的经验,但从我很快看到的情况来看,它只是减轻了处理查询的负担。
发布于 2012-10-02 03:11:34
我曾经需要使用CLucene,它是Lucene API的C++实现。事实证明,这是一项非常困难的任务,直到我遇到了Lucene in Action的书。尽管这些示例都是用Java语言编写的,而且API也有一些不同,但这本书非常清楚地解释了Lucene中的概念,所以我只是使用了这些知识,并在CLucene中使用了这些知识。这本书大约有470页,但你可以读完前三章。
我知道这不是Lucene/Examine教程的建议,但它确实值得一试,因为Examine只是Lucene的一个简单包装器。一旦你理解了这些概念,检查本身就会变得显而易见。
https://stackoverflow.com/questions/12594017
复制相似问题