繁体   English   中英

如何在数据库中创建lucene.net索引

[英]How to create lucene.net index in database

当我们使用winform通过lucene.net索引数据时,请考虑说10个相同的win应用程序正在办公室中运行并且它们都是索引数据。 如果索引段文件是在每个PC中创建的那么它将是问题,或者我们可以在任何集中式PC中创建但是当该PC突然从网络不可用时会出现问题。 所以我想知道我们可以在sql server中存储lucene.net索引以进行集中访问。 如果可能请指导我。 我搜索很多在sql server中存储lucene.net索引,但没有找到。 我有一篇关于java的文章,他们看到它是可能的。 这是链接http://kalanir.blogspot.in/2008/06/creating-search-index-in-database.html

他们说Lucence contains the JdbcDirectory interface for this purpose但我正在with lucene.net & c#所以请任何人指导我如何在sql server中存储lucene索引。

谢谢

可以创建自定义Directory ,但这非常痛苦。 我见过几个项目试试这个并且失败了。

您的方法的显示阻止是IndexWriter假定它只能访问目录。 因此,让多台机器将文档写入同一目录是有缺陷的,并且会打破许多假设。

最好的方法是将Lucene视为数据库。 您不希望许多计算机都直接写入db的文件。 这就是客户与之交谈的服务(SQL Server,MySql,Postgres等)的原因。

记住Lucene只是一个图书馆而不是“产品”。 您需要的是一台带有api的服务,供机器与之交谈。

ElasticSearch已经在其他地方被提到,它非常好。 强烈建议您调查一下。 冗余,速度,最新功能等(是的,它确实需要JVM,更准确地说是JRE。如果仔细观察,有一个下载/安装程序也不会安装crapware)。

编写一个自助托管ASP.net WebAPI并包装Lucene的服务也非常简单。 创建一个与之对话的客户端也很容易。 只是HttpClient的包装器。 (我已经多次这样做了。让POC工作只需要一两天。但是魔鬼在细节上。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM