База данных 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