stringtranslate.com

Сфинкс (поисковая система)

Sphinx — это полнотекстовая поисковая система , предоставляющая клиентским приложениям функцию текстового поиска.

Обзор

Sphinx может использоваться как автономный сервер или как механизм хранения («SphinxSE») для семейства баз данных MySQL. При запуске в качестве автономного сервера Sphinx работает аналогично СУБД и может взаимодействовать с MySQL , MariaDB и PostgreSQL через их собственные протоколы или с любой ODBC-совместимой СУБД через ODBC . MariaDB , ответвление MySQL, распространяется вместе со SphinxSE. [2]

SphinxAPI

Если Sphinx запущен как автономный сервер, можно использовать SphinxAPI для подключения к нему приложения. Официальные реализации API доступны для языков PHP , Java , Perl , Ruby и Python . Также доступны неофициальные реализации для других языков, а также различные сторонние [3] плагины и модули. Другие источники данных могут быть проиндексированы через канал в пользовательском формате XML . [4]

SphinxQL

Поисковый демон Sphinx поддерживает двоичный сетевой протокол MySQL и может быть доступен с помощью обычного API MySQL и/или клиентов. Sphinx поддерживает подмножество SQL, известное как SphinxQL. Он поддерживает стандартные запросы всех типов индексов с помощью SELECT, изменение индексов RealTime с помощью INSERT, REPLACE и DELETE и многое другое.

SphinxSE

Sphinx также может предоставлять специальный механизм хранения для баз данных MariaDB и MySQL. Это позволяет MySQL, MariaDB взаимодействовать со Sphinx searchdдля выполнения запросов и получения результатов. Индексы Sphinx обрабатываются как обычные таблицы SQL. Механизм хранения SphinxSE поставляется с MariaDB.

Полнотекстовые поля и индексация

Sphinx настроен на проверку набора данных через свой индексатор. Процесс индексатора создает полнотекстовый индекс (специальную структуру данных , которая позволяет выполнять быстрый поиск по ключевым словам) из заданных данных/текста. Полнотекстовые поля — это результирующий контент, который индексируется Sphinx; в них можно (быстро) искать ключевые слова. Поля именованы, и вы можете ограничить поиск одним полем (например, искать только по «title») или подмножеством полей (например, только по «title» и «abstract»). Формат индекса Sphinx обычно поддерживает до 256 полей. Обратите внимание, что исходные данные не сохраняются в индексе Sphinx, а отбрасываются в процессе индексации; Sphinx предполагает, что вы храните это содержимое в другом месте.

Атрибуты

Атрибуты — это дополнительные значения, связанные с каждым документом, которые можно использовать для выполнения дополнительной фильтрации и сортировки во время поиска. Атрибуты имеют имена. Имена атрибутов нечувствительны к регистру. Атрибуты не индексируются по всему тексту; они хранятся в индексе как есть. В настоящее время поддерживаются следующие типы атрибутов:

(начиная с версии 1.10-бета);

(начиная с 2.1.1-бета); [5] [6]

Атрибуты JSON в Sphinx

Sphinx, как и классические базы данных SQL , работает с так называемой фиксированной схемой , то есть набором предопределенных столбцов атрибутов. Они хорошо работают, когда большинство хранимых данных на самом деле имеют значения: сопоставление разреженных данных со статическими столбцами может быть громоздким. Предположим, например, что вы запускаете сайт сравнения цен или аукцион с множеством различных категорий продуктов. Некоторые атрибуты, такие как цена или поставщик, идентичны для всех товаров. Но оттуда, для ноутбуков, вам также нужно хранить вес, размер экрана, тип жесткого диска, размер ОЗУ и т. д. И, скажем, для лопат, вы, вероятно, захотите хранить цвет, длину ручки и т. д. Таким образом, это управляемо для одной категории, но всех отдельных полей, которые вам нужны для всех товаров во всех категориях, легион. Поле JSON можно использовать, чтобы преодолеть это. Внутри атрибута JSON вам не нужна фиксированная структура. У вас могут быть различные ключи, которые могут присутствовать или не присутствовать во всех документах. При попытке фильтрации по одному из этих ключей Sphinx проигнорирует документы, в атрибуте JSON которых нет ключа, и будет работать только с теми документами, в которых он есть.

Лицензия

До версии 3 Sphinx имел двойную лицензию :

  1. GNU General Public License версии 2 или
  2. Проприетарное лицензирование доступно для случаев использования, которые не подпадают под условия GNU GPLv2.

Начиная с версии 3, Sphinx стал собственностью компании, и в будущем было обещано раскрыть его исходный код [7]

Примеры использования Sphinx

Список функций

Производительность и масштабируемость

Вилка

В 2017 году ключевые члены первоначальной команды Sphinx разделили проект под названием Manticore [18] с намерением исправить ошибки и разработать новые функции. [19] В отличие от Sphinx, Manticore продолжает выпускаться с открытым исходным кодом под лицензией GPL версии 3. [ 20 ]

Смотрите также

Ссылки

  1. ^ "29 марта 2024 г. Выпущен Sphinx 3.7.1".
  2. ^ "AskMonty: About SphinxSE". kb.askmonty.org . Monty Program AB . Получено 16 августа 2013 г. .
  3. ^ "Sphinx Wiki: Инструменты сторонних разработчиков". sphinxsearch.com . Sphinx Search Wiki . Получено 16 августа 2013 г. .
  4. ^ "xmlpipe2". sphinxsearch.com . Документация Sphinx Search . Получено 16 августа 2013 г. .
  5. ^ "Атрибуты JSON в Sphinx 2.1.1". sphinxsearch.com . Блог поиска Sphinx. 7 февраля 2013 г. Получено 16 августа 2013 г.
  6. ^ "Полная поддержка JSON в Trunk". sphinxsearch.com . Блог Sphinx Search. 8 августа 2013 г. Получено 16 августа 2013 г.
  7. ^ «Sphinx | ​​Поисковый сервер с открытым исходным кодом».
  8. ^ "Sphinx at Craigslist". craigslist.org . Craigslist . Получено 17 августа 2013 г. .
  9. ^ "GM Recruitment". aleph-networks.com . Aleph-networks . Получено 1 октября 2012 г. .
  10. ^ "Молниеносный поиск по сайту PHP". tradebit.com . Tradebit . Получено 17 августа 2013 г. .
  11. ^ "Sphinx Search beta для Vbulletin 4.0". vbulletin.com . Vbulletin . Получено 17 августа 2013 г. .
  12. ^ "Расширение поиска Sphinx для MediaWiki". mediawiki.org . MediaWiki: Svemir Brkic, Paul Grinberg . Получено 17 августа 2013 г.
  13. ^ "Powered by Sphinx Search: Boardreader". sphinxsearch.com . Sphinx Search . Получено 17 августа 2013 г. .
  14. ^ ab "Работает на Sphinx". sphinxsearch.com/ .
  15. ^ "О Sphinx". sphinxsearch.com . Поиск Sphinx . Получено 16 августа 2013 г. .
  16. ^ ab "Powered by Sphinx". sphinxsearch.com . Поиск Sphinx . Получено 10 мая 2015 г. .
  17. ^ "Craigslist: Factsheet". craigslist.org . Craigslist. Архивировано из оригинала 5 августа 2012 года . Получено 16 августа 2013 года .
  18. ^ "О Manticore Search". manticoresearch.com . Получено 24 апреля 2023 г. .
  19. ^ "Manticore Search: 3 года после ответвления от Sphinx". manticoresearch.com . Получено 2 мая 2024 г. .
  20. ^ "manticoresoftware/manticoresearch". GitHub . Получено 2 мая 2024 г.

Дальнейшее чтение

Внешние ссылки