Базата данни на Postgres съществува от близо три десетилетия. Той е доказал своята надеждност и разширяемост чрез обширни тестове от разработчици и в резултат на това формира гръбнака за широк набор от приложения.

Но въпреки възрастта си Postgres продължава да демонстрира способността си да изпълнява нови задачи. В NNext направихме възможно извършването на семантично търсене върху неструктурирани данни, съхранявани в база данни на Postgres, използвайки SQL.

Като използвате ключовата дума ПОДОБНО НА, вече можете да извършвате векторно търсене във всяка база данни на Postgres, свързана чрез NNextDB.

SELECT *
FROM reviews
WHERE review_body SIMILAR TO 'product does not match images'
LIMIT 100

И това е. NNextDB [Прочетете „nextdb”] ви позволява да извършвате семантично търсене в Postgres DB, без да е необходимо да инсталирате разширение на Postgres.

✨ Опитайте тук https://show.nnext.ai

Семантично търсене срещу лексикално търсене

Докато Postgres поддържа пълнотекстово търсене с разширени функции като

  • Произход, където съвпаденията при търсене могат да се базират на коренни думи като „приятел“, „приятелски“, „приятелство“
  • Игнориране на стоп (обичайни) думи, които не добавят много към контекста на заявката. (на, а, с)
  • Претегляне и класиране при търсене на избрани колони, за да се повиши тяхната уместност. Например в сайт за рецензия на продукти може да искате да класирате заглавието на рецензията по-силно от текста на рецензията. ****

Семантичното търсене ви позволява да уловите значението и контекста на заявка по-дълбоко от лексикалното търсене. Да предположим, че трябва да „потърсите текстови отзиви за продукти“, за да разберете какво казват клиентите ви за вашия бизнес. Следните заявки се превеждат приблизително на едно и също нещо:

  • „продуктът не отговаря на изображенията“
  • „изображенията представят погрешно продукта“
  • „продуктът изглеждаше напълно различно, когато пристигна“
  • „цветът на артикула не съвпада с цвета на снимката“

Използвайки семантично търсене, можете да изведете на повърхността тези свързани понятия много по-лесно. Нещо повече, търсенето на сходство не е ограничено само до текст, то може да се приложи към видеоклипове, изображения и други сложни данни.

Разширено филтриране и SQL заявки

Едно основно предимство на използването на NNextDB е, че можете да запазите познатия синтаксис за филтриране на vanilla 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) в този случай. След това сравнява векторите, използвайки алгоритми за приблизителни най-близки съседи, като алгоритъма за графика „Йерархичен навигационен малък свят (HNSW)“. В ход са интеграции, които ви позволяват да посочите по-голямо разнообразие от модели като CLIP, Cohere и тези от 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