Apache Lucene.NET — это библиотека полнотекстового поиска с открытым исходным кодом, написанная на C#. Это порт популярного проекта Java Apache Lucene.
Apache Lucene.NET — это библиотека .NET, предоставляющая мощные функции индексирования и поиска, а также проверку орфографии, выделение совпадений и возможности расширенного анализа/токенизации.
Lucene.NET версии 4.8 (все еще находится в бета-версии) работает везде, где работает .NET, включая Windows, Unix, MacOS, Android и iOS.
Веб-сайт Apache Lucene.NET находится по адресу: http://lucenenet.apache.org.
Последняя версия выпуска: Lucene.NET 3.0.3.
Работа над Lucene.NET 4.8.0 (в настоящее время находится в БЕТА-версии)
PM> Install-Package Lucene.Net
PM> Install-Package Lucene.Net -Pre
У нас есть предварительная документация для Lucene.NET 4.8.0 на веб-сайте Lucene.NET.
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
ПРИМЕЧАНИЕ. Версия устанавливаемого интерфейса командной строки должна соответствовать используемой вами версии Lucene.NET.
После установки вы можете изучить доступные команды и параметры, введя команду lucene
.
Документация lucene-cli
Нам нравится получать пожертвования! Прочтите наше Руководство для участников или узнайте, как вы можете помочь.
Как присоединиться к спискам рассылки
Если у вас есть общие вопросы или вам нужна помощь сообщества Lucene.NET, подпишитесь на список рассылки user
, отправив электронное письмо на адрес [email protected], а затем следуйте инструкциям, чтобы подтвердить свой адрес электронной почты. . Обратите внимание, что вам нужно подписаться только один раз.
После того как вы подписались на список рассылки, отправьте свое сообщение по адресу [email protected].
Кроме того, вы можете получить помощь через активное сообщество StackOverflow.
Пожалуйста, не отправляйте общие практические вопросы на GitHub, используйте GitHub только для отчетов об ошибках и выполнения задач.
Чтобы сообщить об ошибке, используйте трекер проблем GitHub.
ПРИМЕЧАНИЕ. Раньше проект Lucene.NET использовал систему отслеживания проблем JIRA, которая сейчас устарела. Однако мы оставляем его активным для отслеживания устаревших проблем. Пожалуйста, отправляйте любые новые проблемы на GitHub.
Чтобы начать обсуждение технических особенностей Lucene.NET, отправьте электронное письмо в список рассылки dev
по адресу [email protected], а затем следуйте инструкциям, чтобы подтвердить свой адрес электронной почты. Обратите внимание, что вам нужно подписаться только один раз.
После того как вы подписались на список рассылки, отправьте свое сообщение по адресу [email protected].
Прежде чем приступить к работе над запросом на включение, прочтите наше руководство по участию.
ПРИМЕЧАНИЕ. Если проект открыт в Visual Studio, его фоновое восстановление может помешать выполнению этих команд. Перед выполнением рекомендуется закрыть все экземпляры Visual Studio, в которых открыт
Lucene.Net.sln
.
Чтобы собрать исходный код, клонируйте или загрузите и разархивируйте репозиторий. Для определенных выпусков загрузите и разархивируйте файл .src.zip
со страницы загрузки конкретной версии. Из корня репозитория или дистрибутива выполните команду сборки из командной строки и включите нужные параметры из таблицы параметров сборки ниже:
> build [options]
./build [options]
ПРИМЕЧАНИЕ. Перед первым выполнением файлу
build
необходимо предоставить разрешение на запуск с помощью командыchmod u+x build
.
Следующие параметры не чувствительны к регистру. Каждая опция имеет как краткую форму, обозначенную одинарным -
, так и полную форму, обозначенную --
. За параметрами, требующими значения, должен следовать пробел, а затем значение, аналогично запуску CLI dotnet.
Короткий | Длинный | Описание | Пример |
---|---|---|---|
--config | --конфигурация | Конфигурация сборки («Выпуск» или «Отладка»). | сборка — конфигурация Отладка |
‑mp | ‑‑максимальные параллельные задания | Максимальное количество параллельных заданий, запускаемых во время тестирования. Если не указано, значение по умолчанию — 8. | сборка ‑t ‑mp 10 |
‑pv | ‑‑версия-пакета | Версия пакета NuGet. Если не указано, будет использоваться версия из файла Version.proj. | сборка ‑pv 4.8.0‑beta00001 |
-т | --тест | Запускает тесты после сборки. Эта опция не требует значения. Обратите внимание, что тестирование обычно занимает около 40 минут при выполнении 8 параллельных заданий. | построить -t |
‑fv | ‑‑версия-файла | Версия файла сборки. Если оно не указано, по умолчанию используется значение --package-version (исключая любые метки предварительной версии). Версия сборки будет получена из основного компонента версии переданного значения, исключая второстепенные компоненты, компоненты сборки и версии. | сборка ‑pv 4.8.0‑beta00001 ‑fv 4.8.0 |
Например, следующая команда создает сборку Release с пакетом 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» в версии пакета, чтобы указать, что это не общедоступная бета-версия, а скорее результат сборки непрерывной интеграции из основной версии, которая произошла после beta00014, но до выпуска beta00015.
Пакеты NuGet выводятся при сборке в каталог /_artifacts/NuGetPackages/
. Результаты тестирования (если применимо) выводятся в каталог /_artifacts/TestResults/
.
Вы можете настроить Visual Studio для чтения пакетов NuGet, как и любого канала NuGet, выполнив следующие действия:
+
(для добавления)Lucene.Net Local Packages
...
рядом с полем «Источник» и выберите папку /src/_artifacts/NuGetPackages
в своей локальной системе. Затем все, что вам нужно сделать, это выбрать канал Lucene.Net Local Packages
из раскрывающегося списка (в диспетчере пакетов NuGet), и вы сможете искать, устанавливать и обновлять пакеты NuGet так же, как и с любым веб-каналом.
Lucene.Net.sln
в Visual Studio..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 в новую переменную с именем
ArtifactFeedID
, но мы получаем неоднозначные результаты из-за проблем с разрешениями.