如何使用Lucene.Net创建构面

我正在构建一个C#windows窗体应用程序,用于搜索数据库并显示结果。 我试图找到一个如何用Lucene创建方面的指南,但似乎我不能。 我正在创建索引,我能够搜索数据库,但我想为结果创建构面。 是否有任何指南或项目可供使用?

编辑这里是到目前为止我的项目的链接https://github.com/assignment128A-adopse/Assignment

任何帮助/建议都会有所帮助

有几个选择。

选项1

在Lucene.Net 4.8.0中,您可以使用Lucene.Net.Facet模块来设置分面搜索。 请参阅Lucene API文档 。

选项#2

您可以使用Simple Faceted Search contrib项目,但据我所知,它只为您分组构面并获得它们的计数。 我相信如果您需要实际列出与所选方面匹配的内容,您必须自己构建它。

https://cwiki.apache.org/confluence/display/LUCENENET/Simple+Faceted+Search

https://github.com/apache/lucenenet/tree/812e1c541f1a00392391c5761fd3dcb7b0aedd88/src/contrib/SimpleFacetedSearch

https://github.com/apache/lucenenet/blob/3.0.3/test/contrib/SimpleFacetedSearch/TestSimpleFacetedSearch.cs

选项#3

使用BoboBrowse.Net。 它是一个完整的分面搜索引擎,不仅可以计算分面计数,还可以选择分面以及检索内置排序和分页的匹配列表。 还有许多内置构面类型,例如范围和地理位置。

  • 对于Lucene.Net 3.0.3 – ( NuGet页面 , 演示1 , 演示2 )
  • 对于Lucene.Net 2.9.4

请注意,虽然演示是在MVC中完成的,但在Windows窗体中进行设置是类似的(实际上更容易,因为当选择更改时,您不需要使用AJAX重新加载结果)。

选项#4

使用SOLR。 它是一个基于服务器的解决方案,可以在Java上运行, 可以设置为进行分面搜索 。

SOLR还有一个.NET客户端 – ( 面向 文档 )