Bsa.Search.Core библиотека .Net Core обеспечивающая индексацию и быстрый полотекстовый поиск, подсветку объектов. Поисковый движок проверен на большой нагрузке и подходит для сложных аналитических запросов. Обрабатывает до 100 тысяч простых запросов в минуту на индексе из 2 млн документов, или примерно 8 тысяч сложных аналитических запросов Поисковый движок и подсветка объектов находится в промышленной эксплуатации в нескольких компаниях. Возможности поискового движка: Обыный индекс до 2КК сообщений, зависит от размера текста поступающего на индексацию и его разнородности Шардированный индекс до 40КК сообщений Обработка до 8К аналитических запросов в минуту Просто масштабировать, дисковые индексы можно просто скопировать Сервис подсветки объектов: Оптимизирован на скорость подсветки и небольшую утилизацию оперативной памяти. Проверено на 5К объектов на 2КК сообщений в день. Необходимый объем памяти от 2 до 4 GB RAM. Загрузка ЦПУ 30-80 процентов. Бытсрый старт Ключевые слова "~" - дистанция в обе стороны, пример (один ~3 два) "-" - отрицание, может включать в себя любые другие запросы, но оператор должен стоять последним. пример: (один ~3 два) -(три ~5 два) "|" - логическое или "&" или " " - логическое и, пробел также воспринимается как логическое и "/" - дистанция вправо, пример (один /3 два) "" - фраза со всеми словоформами '' - фраза точное соотвествие указанным словоформам "*" - wild card. пример: (один* | дв*) "?" - возможность игнорировать одну или более букв. пример: (о??н | дв?) "()" - группировака запросов в логические единицы. пример: ("один* два") ~100 (три|четыре|пят?) ":" - указываем в каком поле искать, по умолчанию поиск производится по всем полям. Пример: content:(one & two) Словоформы Если вам необходимо добавить свои словоформы, тогда вам надо добавить в директорию где находятся исходники файл с расширением '*.terms'. Содержимое файла это слова разделенные пробелом, каждая новоя словоформа разделена символом начала строки Пример: два две двух двумя 2 слова слово словом