BsaSearch .Net fulltext search core

Лицензия BSD-2-Clause

Bsa.Search.Core библиотека .Net Core обеспечивающая индексацию и быстрый полотекстовый поиск, подсветку объектов. Поисковый движок проверен на большой нагрузке и подходит для сложных аналитических запросов. Обрабатывает до 100 тысяч простых запросов в минуту на индексе из 40 млн документов, или примерно 8 тысяч сложных аналитических запросов

Поисковый движок и подсветка объектов находится в промышленной эксплуатации в нескольких компаниях.

Возможности поискового движка:

  • Обыный индекс до 40КК сообщений, зависит от размера текста поступающего на индексацию и его разнородности
  • Шардированный индекс до 40КК сообщений
  • Обработка до 8К аналитических запросов в минуту
  • Просто масштабировать, дисковые индексы можно просто скопировать
  • Сервис подсветки объектов:

  • Оптимизирован на скорость подсветки и небольшую утилизацию оперативной памяти.
  • Проверено на 5К объектов на 2КК сообщений в день.
  • Необходимый объем памяти от 2 до 4 GB RAM.
  • Загрузка ЦПУ 30-80 процентов.
  • -

    Бытсрый старт

    Ключевые слова

    "~" - дистанция в обе стороны, пример (один ~3 два)

    "-" - отрицание, может включать в себя любые другие запросы, но оператор должен стоять последним. пример: (один ~3 два) -(три ~5 два)

    "|" - логическое или

    "&" или " " - логическое и, пробел также воспринимается как логическое и

    "/" - дистанция вправо, пример (один /3 два)

    "" - фраза со всеми словоформами

    '' - фраза точное соотвествие указанным словоформам

    "*" - wild card. пример: (один* | дв*)

    "?" - возможность игнорировать одну или более букв. пример: (о??н | дв?)

    "()" - группировака запросов в логические единицы. пример: ("один* два") ~100 (три|четыре|пят?)

    ":" - указываем в каком поле искать, по умолчанию поиск производится по всем полям. Пример: content:(one & two)

    Словоформы

    Если вам необходимо добавить свои словоформы, тогда вам надо добавить в директорию где находятся исходники файл с расширением '*.terms'. Содержимое файла это слова разделенные пробелом, каждая новоя словоформа разделена символом начала строки

    Пример:

    два две двух двумя 2

    слова слово словом

    Быстрый старт MemoryDocumentIndex

    Быстрый старт DiskDocumentIndex

    Быстрый старт FileDocumentIndex

    Быстрый старт ShardDocumentIndex

    Быстрый старт HighlightObjectService. Подсветка объектов в тексте


    Быстрый старт TextCompareService. Сравнение двух строк