首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Examine/Lucene教程

Examine/Lucene教程
EN

Stack Overflow用户
提问于 2012-09-26 11:05:08
回答 2查看 1.5K关注 0票数 0

我对用于在独立桌面应用程序中构建搜索的Examine感兴趣,用于搜索数据库表以及office/.pdf文件

这看起来像是Lucene/examine的一个很好的场景

然而,那里的文档很少,虽然我有丰富的SQL全文搜索经验,但Lucene完全是另一种野兽,因此需要帮助/指示如何开始/从哪里开始

是的,我在谷歌上搜索了一下,但没有找到任何资源,因为这些术语非常常见( lucene examine等)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

  • The

  • 查询索引,在IndexSearcher

  • The编写器上发布查询使用分析器(默认值为StandardAnalyzer) (它定义了文本的存储和/或索引方式)

  • 要创建查询,您可以使用QueryParser (也使用分析器),或者自己构建查询对象。

有了这些信息,你已经可以设置一个最小的工作示例了。

分析器

下一步是深入研究标记化。不同的分析器进行不同的标记化。它们允许您忽略短词、在非字母数字字符处拆分或进行词干分析(SnowballAnalyzer)。了解哪些分析器可用并选择正确的分析器对于使Lucene适合您的问题至关重要。

查询中

索引数据可以被查询,我想说是一种灵活的方式,但有其自身的局限性。由于Lucene的性质,像否定、排序和范围这样的事情会让你很头疼。

你必须意识到的一件事是,Lucene实际上只不过是一个超高效的字典,你可以用它来进行查找。例如,这就解释了为什么否定是特殊的。你不能搜索缺少的东西,但是你可以搜索"MyField:false“。搜索1到3之间的数字,通常会创建一个查询,查找1、2和3。在处理日期时,您必须确保它们以可排序的方式进行索引(例如20121005)

社区

如果你遇到问题:Lucene.NET newsgroup已经被证明是非常有帮助和响应性的。

SOLR.NET

你很有可能会遇到一些限制,比如需要刻面。SOLR.NET是建立在Lucene.NET之上的,它解决了一些原本需要你费很大力气才能完成的事情。不过我从来没有真正用过它。

检查

我也没有检查的经验,但从我很快看到的情况来看,它只是减轻了处理查询的负担。

票数 3
EN

Stack Overflow用户

发布于 2012-10-02 03:11:34

我曾经需要使用CLucene,它是Lucene API的C++实现。事实证明,这是一项非常困难的任务,直到我遇到了Lucene in Action的书。尽管这些示例都是用Java语言编写的,而且API也有一些不同,但这本书非常清楚地解释了Lucene中的概念,所以我只是使用了这些知识,并在CLucene中使用了这些知识。这本书大约有470页,但你可以读完前三章。

我知道这不是Lucene/Examine教程的建议,但它确实值得一试,因为Examine只是Lucene的一个简单包装器。一旦你理解了这些概念,检查本身就会变得显而易见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12594017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档