База данных Postgres существует уже почти три десятилетия. Он доказал свою надежность и расширяемость в ходе всестороннего тестирования разработчиками и в результате стал основой для широкого спектра приложений.
Но, несмотря на свой возраст, Postgres продолжает демонстрировать способность выполнять новые задачи. В NNext мы сделали возможным семантический поиск по неструктурированным данным, хранящимся в базе данных Postgres, с помощью SQL.
Используя ключевое слово SIMILAR TO, теперь вы можете выполнять векторный поиск в любой базе данных Postgres, подключенной через NNextDB.
SELECT * FROM reviews WHERE review_body SIMILAR TO 'product does not match images' LIMIT 100
Вот и все. NNextDB [читается «nextdb»] позволяет выполнять семантический поиск в базе данных Postgres без необходимости установки расширения Postgres.
✨ Попробуйте здесь https://show.nnext.ai
Семантический поиск против лексического поиска
Хотя Postgres поддерживает полнотекстовый поиск с расширенными функциями, такими как
- Вывод, где поисковые совпадения могут быть основаны на корневых словах, таких как «друг», «дружеский», «дружба».
- Игнорирование стоп-слов, которые мало что добавляют к контексту запроса. (а, с)
- Взвешивание и поисковый рейтинг для выбранных столбцов для повышения их релевантности. Например, на сайте обзора продуктов вы можете захотеть ранжировать заголовок обзора выше, чем текст обзора. ****
Семантический поиск позволяет более глубоко уловить смысл и контекст запроса, чем лексический поиск. Предположим, вам нужно поискать текстовые обзоры продуктов, чтобы понять, что ваши клиенты говорят о вашем бизнесе. Все следующие запросы преобразуются примерно в одно и то же:
- «товар не соответствует изображениям»
- «Изображения искажают продукт»
- «товар выглядел совершенно иначе, когда он прибыл»
- «Цвет товара не соответствует цвету на картинке»
Используя семантический поиск, вы можете гораздо легче обнаружить эти связанные понятия. Более того, поиск по сходству не ограничивается только текстом, его можно применять к видео, изображениям и другим сложным данным.
Расширенная фильтрация и SQL-запросы
Одним из основных преимуществ использования NNextDB является то, что вы сохраняете знакомый синтаксис фильтрации ванильного SQL. Например, используя набор данных отзывов Amazon, вы можете фильтровать отзывы определенной длины и между заданным рейтингом.
SELECT review_body, * FROM "amazon_reviews_us_Outdoors_v1_00" WHERE review_body **SIMILAR TO** 'product does not match images' AND LENGTH (review_body) > 50 AND (star_rating >= 2 AND star_rating <= 4) LIMIT 100
Это ключевое преимущество, поскольку вам не нужно изучать новый механизм запросов.
Что такое векторный или семантический поиск?
Вкратце, семантический поиск использует достижения AI/ML для захвата значения и контекста неструктурированных данных, включая текст, изображения и видео, в числовое представление, называемое встраиванием вектора — обычно в виде многомерного вектора.
Как работает семантический поиск в фоновом режиме?
NNextDB извлекает встраивание векторов из текстов запросов, используя в данном случае предопределенную модель (text-embedding-ada-002
OpenAI). Затем он сравнивает векторы, используя приближенные алгоритмы ближайших соседей, такие как алгоритм графа Hierarchical Navigable Small World (HNSW). В настоящее время идет интеграция, позволяющая указать более широкий спектр моделей, таких как CLIP, Cohere’s и Hugging Face.
Использование расширений Postgres для выполнения векторного поиска.
Хорошие ребята из Supabase недавно выпустили pg_vector
, расширение, позволяющее выполнять векторный поиск в базе данных Postgres. Это расширение отлично подходит для баз данных, которыми вы управляете, или баз данных, которыми управляют такие провайдеры, как Crunch Data, Nucleus и Bit.io. К сожалению, для большинства компаний, которые полагаются на большие облачные сервисы, такие как AWS RDS, Cloud SQL для PostgreSQL или Azure, эти расширения остаются недоступными.
Как я могу получить доступ к NNextDB?
NNextDB все еще находится в закрытой бета-версии, однако уже сейчас вы можете получить ограниченный доступ.
👋🏾 Чтобы получить ранний доступ к NNextDB, зарегистрируйтесь здесь https://app.nnext.ai