Мне нужна библиотека, которую я могу использовать на своем сайте, в которую я могу вводить названия и описания всех элементов, которые у меня есть, а затем вводить условия поиска на естественном английском языке и получать релевантные результаты. Я очень хочу изучить платные или даже SaaS-решения, а также программное обеспечение с открытым исходным кодом.
Чтобы избежать проблемы X/Y , вот моя проблема:
У меня есть эта база данных товаров, которые продаются на сайте электронной коммерции. Люди хотят найти предметы, и вверху есть панель поиска. До того, как я попал сюда, он просто брал каждое ключевое слово и выполнял запрос, похожий на
SELECT name,description,price,etc...
FROM products
WHERE name LIKE '%keyword1%'
OR name LIKE '%keyword2%'
OR description LIKE '%keyword1%'
OR description LIKE '%keyword2%'
Затем я изменил его, чтобы использовать индекс FULLTEXT MySQL как для имени, так и для описания, а затем реализовал самодельное решение для анализа строк, таких как «4 фута», как в запросе, так и в заголовке, и сопоставлять их как измерения, а не как голый текст. Даже сейчас многие продукты не появляются, когда должны, или находятся слишком далеко в списке. После всего этого я понял, что кто-то уже делал это раньше, и мне следует использовать их код, а не пытаться сделать это самому, поскольку я уже потратил на это слишком много времени.
Может быть полезно взглянуть на Apache Solr или ElasticSearch .
Вы можете установить их самостоятельно или воспользоваться услугами какого-нибудь поставщика SaaS, предлагающего их.
В MariaDB/MySQL уже есть (отличный) полнотекстовый поиск . Я рекомендую вам сначала попробовать использовать его вместо какой-либо сторонней библиотеки.
Базиль Бурк
Шелваку