【问题标题】:Integrating Lucene into a .NET desktop application将 Lucene 集成到 .NET 桌面应用程序中
【发布时间】:2013-08-11 05:42:05
【问题描述】:

我正在制作一个 .NET 桌面应用程序(WinForms+Local PostgreSQL Server)来管理一家小商店的销售。

我希望将 Lucene 搜索工具集成到我的软件的“产品搜索”模块中。将此类信息检索库集成到现有应用程序中是否有任何好的模式?

注意:该应用程序仍在开发中,我可以随时修改架构以集成 Lucene。

注意:我知道如何使用 Lucene,并创建了一个简单的演示应用程序来测试它的功能。 我只是在寻找将此类搜索功能集成到桌面应用程序中的模式。

注意:集成的主要要求也是使用户能够快速搜索产品/品牌/等,并在 UI 中提供谷歌自动完成系统。

【问题讨论】:

    标签: .net full-text-search lucene.net


    【解决方案1】:

    我建议您购买“Lucene in Action”一书。它基于 Java 的 Lucene 3.0.3 版本,但是该版本恰好是 .NET (3.0.3) 的最新版本。

    这本书将为您提供了解 .NET 所需的一切。实现“类似谷歌”的搜索实际上并不是那么简单……必须做:模糊搜索、词库匹配、拼写/你的意思是、复杂评分等。我使用 Lucene 已经 3 年多了,那本书对我有帮助学到很多东西。

    【讨论】:

      【解决方案2】:

      就我个人而言,我创建了一个通用存储库,它在某些时候为您提供了某种程度的抽象,还有一个名为 linq to lucene 的项目与存储库模式完全匹配,我已经获取了部分代码并制作了我自己的实现根据我的需要,我建议你看看,还有一个名为lucene contrib的nuget包,它为lucene.net增加了一些功能。包。

      在您的 lucene 实现中使用 linq 的好处是,任何 avg 开发人员都可以在没有深入了解 lucene 的情况下进行文本搜索。

      总是建议在谈论架构时考虑 OOP 原则,例如 DRY、SOLID、TDD。 就我而言,我有一个单独的项目,例如 companyName.Software.Lucene,它抽象了 lucene 背后的所有机制,当您使用该实现时,感觉就像您在某些时候使用 ORM 进行搜索。

      如果您使用的是 nHibernate,则可以选择使用设置的文本索引

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-28
        • 1970-01-01
        • 1970-01-01
        • 2011-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多