Apache Lucene.NET 是一个用 C# 编写的开源全文搜索库。它是流行的 Java Apache Lucene 项目的移植。
Apache Lucene.NET 是一个 .NET 库,提供强大的索引和搜索功能,以及拼写检查、命中突出显示和高级分析/标记化功能。
Lucene.NET 版本 4.8(仍处于 Beta 版)可在 .NET 运行的所有地方运行,包括 Windows、Unix、MacOS、Android 和 iOS。
Apache Lucene.NET 网站位于:http://lucenenet.apache.org
最新发布版本:Lucene.NET 3.0.3
致力于 Lucene.NET 4.8.0(目前处于 BETA 阶段)
PM> Install-Package Lucene.Net
PM> Install-Package Lucene.Net -Pre
我们在 Lucene.NET 网站上有 Lucene.NET 4.8.0 的初步文档。
该 API 与 Java Lucene 4.8.0 类似,您可能会发现查看它也很有帮助。
注意:我们正在努力解决文档问题,但由于这是一个庞大的项目,因此可能需要更多帮助。参见#206。
有几个演示作为简单的控制台应用程序实现,可以将其复制并粘贴到 Visual Studio 中或在 Lucene.Net.Demo 项目中的命令行上进行编译。
NuGet 上还提供了一个 dotnet 命令行工具。它包含所有演示以及维护 Lucene.NET 索引的工具,具有拆分、合并、列出段信息、修复、删除段、升级等操作。在运行任何命令之前,请务必确保备份索引反对!
dotnet tool install lucene-cli -g --version 4.8.0-beta00015
注意:您安装的 CLI 版本应与您使用的 Lucene.NET 版本匹配。
安装后,您可以通过输入命令lucene
来探索可用的命令和选项。
lucene-cli 文档
我们喜欢获得贡献!请阅读我们的贡献指南或继续阅读您可以提供帮助的方法。
如何加入邮件列表
如果您有一般性的操作问题或需要 Lucene.NET 社区的帮助,请通过发送电子邮件至 [email protected] 订阅user
邮件列表,然后按照说明验证您的电子邮件地址。请注意,您只需订阅一次。
订阅邮件列表后,请将您的消息通过电子邮件发送至 [email protected]。
或者,您可以通过 StackOverflow 的活跃社区获得帮助。
请不要向 GitHub 提交一般操作方法问题,仅将 GitHub 用于错误报告和任务。
要报告错误,请使用 GitHub 问题跟踪器。
注意:过去,Lucene.NET 项目使用 JIRA 问题跟踪器,但现已弃用。但是,我们将保持其活跃状态以跟踪遗留问题。请将任何新问题提交到 GitHub。
要开始有关 Lucene.NET 技术功能的开发讨论,请向dev
邮件列表发送电子邮件至 [email protected],然后按照说明验证您的电子邮件地址。请注意,您只需订阅一次。
订阅邮件列表后,请将您的消息通过电子邮件发送至 [email protected]。
在开始处理拉取请求之前,请阅读我们的贡献指南。
注意:如果项目在 Visual Studio 中打开,其后台还原可能会干扰这些命令。建议在执行之前关闭所有打开
Lucene.Net.sln
的 Visual Studio 实例。
要构建源代码,请克隆或下载并解压缩存储库。对于特定版本,请从特定版本的下载页面下载并解压.src.zip
文件。在存储库或分发根目录中,从命令提示符执行构建命令,并包含下面构建选项表中所需的选项:
> build [options]
./build [options]
注意:在第一次执行之前,需要使用命令
chmod u+x build
授予build
文件运行权限。
以下选项不区分大小写。每个选项都有一个由单个-
表示的短格式和由--
表示的长格式。需要值的选项后面必须跟一个空格,然后是值,类似于运行 dotnet CLI。
短的 | 长的 | 描述 | 例子 |
---|---|---|---|
-配置 | - 配置 | 构建配置(“发布”或“调试”)。 | 构建——配置调试 |
-mp | ----最大并行作业数 | 测试期间运行的最大并行作业数。如果未提供,则默认值为 8。 | 构建-t-mp 10 |
-pv | ----包版本 | NuGet 包版本。如果未提供,将使用 Version.proj 文件中的版本。 | 构建-pv 4.8.0-beta00001 |
-t | - 测试 | 构建后运行测试。此选项不需要值。请注意,测试 8 个并行作业通常需要大约 40 分钟。 | 构建-t |
-fv | ----文件版本 | 程序集文件版本。如果未提供,则默认为 --package-version 值(不包括任何预发布标签)。程序集版本将从传入值的主要版本组件派生,不包括次要版本、构建版本和修订版本组件。 | 构建 -pv 4.8.0 -beta00001 -fv 4.8.0 |
例如,以下命令使用 NuGet 包版本 4.8.0-ci00015 和文件版本 4.8.0 创建发布版本。程序集版本将从传入值的主要版本组件派生,不包括次要版本、构建版本和修订版本组件(在本例中为 4.0.0)。
> build ‑‑configuration Release ‑pv 4.8.0‑ci00015 ‑fv 4.8.0
./build ‑‑configuration Release ‑pv 4.8.0‑ci00015 ‑fv 4.8.0
在上面的示例中,我们在包版本中使用“ci”来指示这不是公开发布的 beta 版本,而是从 master 持续集成构建的输出,该输出发生在 beta00014 之后但在 beta00015 发布之前。
NuGet 包由构建输出到/_artifacts/NuGetPackages/
目录。测试结果(如果适用)输出到/_artifacts/TestResults/
目录。
您可以按照以下步骤设置 Visual Studio 以像读取任何 NuGet 源一样读取 NuGet 包:
+
图标(用于添加)Lucene.Net Local Packages
...
按钮,然后选择本地系统上的/src/_artifacts/NuGetPackages
文件夹。然后,您需要做的就是从下拉列表中选择Lucene.Net Local Packages
源(在 NuGet 包管理器中),然后您就可以搜索、安装和更新 NuGet 包,就像使用任何基于 Internet 的源一样。
Lucene.Net.sln
。.build/TestTargetFramework.props
并取消注释相应的<TargetFramework>
(并注释所有其他框架)来选择要测试的目标框架。注意:在 Visual Studio 中运行测试时,请务必将默认处理器体系结构设置为 64 位,以避免在某些测试中耗尽虚拟内存。
我们已经使用逻辑默认值设置了azure-pipelines.yml
文件,因此拥有 Azure DevOps 帐户的任何人都可以构建 Lucene.NET 并以最小的努力运行测试。即使是免费的 Azure DevOps 帐户也可以使用,但如果将帐户设置为公共帐户,测试将运行得更快,这样最多可以同时运行 10 个并行作业。
azure-pipelines.yml
的内容。文件顶部附近有文档,指示可以设置以启用其他选项的变量,但请注意,默认配置将自动运行构建和所有测试。请注意,构建完成后, nuget
工件包含.nupkg
文件,这些文件可以下载到您的本地计算机,您可以在其中设置本地文件夹作为 NuGet 源。
还可以将 Azure DevOps feed id 添加到名为
ArtifactFeedID
的新变量中,但由于权限问题,我们得到的结果好坏参半。