8 Самостоятелно хостван мощен софтуер за търсене 🔍 Engine за вашия продукт

Изглежда обезсърчително, но добавянето на мощна функция за търсене към вашето приложение не е нито сложно, нито отнема много време. Ето някои солидни препоръки!

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

Ако сте бизнес, който търси добро решение за търсене или сте уморени от съществуващото си, какво правите?

За щастие не е необходимо да плащате абсурдни лицензионни такси, нито трябва да поддържате екип от 20 разработчици и системни администратори. Днес имам някои препоръки за търсачки, които могат да бъдат инсталирани и интегрирани за нула време, особено от малки фирми с екипи от разработчици от размер 1-2.

MeiliSearch

Една от най-добрите и висококачествени търсачки, на които ще попаднете, е MeiliSearch.

И така, какво ме кара да посоча MeiliSearch сред най-добрите си препоръки?

Ето го.

Отворен код

Целият изходен код, захранващ MeiliSearch, е достъпен на открито в GitHub. Това означава, че разработчиците могат сами да изследват всяка част от кода. В замяна фирмите могат да бъдат сигурни в качеството и намерението (без задни вратички или скенери в програмата, например). И, разбира се, опитни разработчици могат да помогнат за подобряването на технологията още повече.

Страхотен UX

MeiliSearch няма сложни правила (като „a – b“ означава a, но не и b). Просто въведете вашето търсене естествено и резултатите ще започнат да се показват плавно. Машината е много толерантна и адаптивна, осигуряваща точни резултати дори когато се използват правописни грешки или синоними. Той също така поддържа множество езици.

Страхотен DevEx

Разработчиците ще харесат MeiliSearch! Той е не само персонализиран и мащабируем, но и интерфейс като REST API! Документацията също е отлична и пълна. Въпреки че извършването на HTTP извиквания е тривиално на всеки език, примери от пет езика (JavaScript, Ruby, Python, Golang и PHP) са дадени за тези, които бързат.

Простите решения за търсене трябва да са лесни за използване и настройка. Като такъв, MeiliSearch проверява всички полета! Когато сте щастливи да продължите, започнете с DigitalOcean с едно щракване.

Solr

Solr, част от проекта Apache, съществува от няколко години. Той е изграден на базата на добре познатата и изключително надеждна библиотека Lucene, която също захранва популярното решение за търсене, наречено ElasticSearch. Цялото това безумие означава, че Solr е сред най-мощните, мащабируеми, съвместими със стандартите, богати на функции и надеждни решения за търсене.

Използва се от гиганти като Disney, eBay, Netflix, Zappos и BestBuy. Това обаче не означава, че не можете да стартирате по-малка, по-опростена инсталация (да речем, на една машина, без мащабиране, без отказ — е, понякога е добре) и да използвате тази мощност, наречена Solr.

И така, защо да използвате Solr?

Ето някои страхотни причини.

Точен и мощен

Solr е сред най-точните, способни и мощни системи за търсене в света. Плюс това, той е с отворен код, което обяснява защо големите имена (както споменахме по-рано) са се ориентирали към него. Способността му да усвоява документи и да отговаря на заявки за търсене е ненадмината.

Лесен монтаж и поддръжка

Инсталирането на Solr е толкова просто, колкото декомпресирането и стартирането на програмата. За прости системи с една машина не се изисква сложна поддръжка; следете използването на RAM, тъй като решенията за търсене като цяло и в частност базираните на Java технологии могат да бъдат доста гладни за RAM (защото те държат или се опитват да държат всичко в RAM, за да осигурят бързо четене/запис).

Административен панел

Solr идва с административен панел, който позволява визуално наблюдение и конфигурация. С някакво тривиално обучение, дори и неразработчиците могат да се научат да четат ключовите диаграми. Не много решения за търсене в този списък идват с функционалност като тази.

Източник на изображението: Официален сайт

Управляван от API, съвместим със стандартите

Solr предоставя интерфейс за резултати в API, който може да обработва множество формати – JSON, CSV, XML и двоичен. Той извежда данни за мониторинг според стандарта JMX, огромно предимство за Java разработчиците.

  Какво е Harmony OS? Обяснение на новата операционна система на Huawei

Има много повече да се каже в полза на Solr, но опитът да покрием всичко ще ни отведе до края на времето. 😂 Достатъчно е да се каже, че Solr е първокласно решение и никога не можете да сбъркате с него, независимо с какъв тип данни работите.

Еластично търсене

Elasticsearch беше и може би все още е пионер в търсенето на текст в свободна форма. Всъщност дори днес, ако попитате програмист или системен администратор за препоръка относно търсачките, Elasticsearch е много вероятно да бъде единственото име, което ще измислят. Разбира се, в наши дни значителна част ще препоръча и нещо като Algolia, но вече разгледахме как се получава това. 🤪

Не се подвеждайте от бутона „Стартиране на безплатен пробен период“ в графиката по-горе. Въпреки че самата основна технология Elasticsearch е с отворен код и е безплатна, компанията се опитва да монетизира усилията си и да се насочи към предприятията. Следователно това, което виждате тук, всъщност е пробната версия на тяхната облачна услуга, което прави управлението на Elasticsearch лесно, особено когато има включени клъстери.

Уфф, толкова много мрежи за разплитане. Нека обобщим: Elasticsearch е с отворен код и е безплатен и всеки може да го настрои лесно и да го използва без никакви ограничения.

А сега, както очаквахме, нека се потопим в причините за избора на Elasticsearch:

  • Зряла, изпитана в битки търсачка. Това означава, че е много по-вероятно да намерите решения, ако сте заседнали със „странни“ грешки.
  • Първокласен фокус върху групирането, мащабируемостта и асинхронните записи.
  • Достъпен чрез прост REST API (което всички останали в крайна сметка копираха).
  • Ориентиран към документи, но поддържа схема, ако е необходимо.
  • Безумно бързи и точни резултати. Конфигурируема скорост на търсене.
  • Страхотна документация, както в количеството, така и в полезността.
  • Пълна облачна платформа за търсене и анализ (стека ELK), ако искате да платите за удобството.

Единствената гнида, която бих имал срещу Elasticsearch, е огромната консумация на RAM. Искам да кажа, че като консултанти е достатъчно трудно да убедим клиентите да инвестират в сървър, струващ $20/месец, което за съжаление не е близо до това, което Elasticsearch изисква.

Ако сте любопитни да научите Elasticsearch, вижте този курс на Udemy.

Typesense

Typesense е лека, ясна, но мощна търсачка. Тези, които търсят полезност и простота, определено трябва да изпробват този.

Едно от най-добрите неща за Typesense е, че можете да го изпробвате направо на техния уебсайт. Това може да спести разочарование и време в случаите, когато настроите всичко и изпробвате API. . . само за да откриете, че една или повече от функциите не работят по начина, по който бихте искали.

Това не означава, че може да има грешки в двигателя; просто възприемането на нещо от двигателя може да не е вашето предпочитание или може да е в пълен конфликт с вашия бизнес домейн. Печатни грешки, специални символи, синоними и др. . . можете да проверите резултатите, които двигателят изхвърля направо на началната страница (те използват база данни с книги за това).

Както можете да видите, този раздел е точно под най-горния. В полето за търсене въведох заявката „tra“ и по-долу виждам съответстващи резултати от базата данни с книги (както и метаданни — общи резултати, текуща страница и т.н.).

Typesense има много предимства, когато става въпрос за избрана търсачка:

  • Технологията зад нея е с напълно отворен код и е приветлива.
  • Лесна за конфигуриране настройка на HA (High Availability), ако имате нужда от такава.
  • Толерантен, когато става въпрос за правописни грешки и друг шум в заявките за търсене.
  • Усъвършенствана система за филтриране за тези, които се нуждаят от фин контрол на резултатите от търсенето.
  • Прост REST API, въпреки че техните документи ще ви накарат да работите допълнително, за да го намерите!
  • Клиентите (SDK) са налични за някои от основните езици (JavaScript, Python, Ruby и PHP).

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

  Как да нулирате мрежовата връзка на вашия Roku

Като цяло, Typesense има много смисъл (без каламбур!), ако имате нужда от нещо малко, елегантно, прецизно и истинско работен кон.

Соник

Sonic се гордее, че е алтернатива на ElasticSaerch, която работи на „няколко MB RAM“.

Как е възможно?

Добре, известно е, че виртуалната машина на Java (JVM) е гладна за RAM (като цяло самото стартиране на JVM изяжда около 1 GB RAM); Следователно не е изненада, че нещо, кодирано на езика Rust (който осигурява пълен контрол и безопасност на паметта за разработчиците) може да работи също толкова бързо и да използва само няколко MB RAM.

Спокойно всички! Това е просто талисманът на проекта.

Към момента на писане има няколко компании, изброени сред неговите потребители, въпреки че съм сигурен, че има още няколко, които не са си направили труда да добавят имената си. Не помня как или точната времева рамка, но попаднах на Sonic по-рано; по това време, макар да бях щастлив да видя алтернатива с ниска памет, мислех, че ще трябва време за стабилизиране и изглаждане на скритите грешки. Е, изглежда, че горе-долу са пристигнали; колко популярен става Соник е нещо, което само времето ще покаже.

Добре, като оставим настрана толкова дълги размишления, защо трябва да обмислите използването на Sonic за вашата организация/проект?

Ето някои причини:

  • Изключително нисък отпечатък на паметта, що се отнася до търсачките.
  • Библиотеките са налични за всички основни езици за програмиране. Node, PHP и Rust са това, което са пуснали самите автори, докато други са създадени от общността (радвайте се, защото екзотични неща като Elixir и Nim също са обхванати!).
  • Поддържат се няколко езика (беше прекалено много за броене, но мисля, че към момента на писане се поддържат 40-50 езика).
  • Изненада! Можете дори да използвате нови езици и двигателят ще работи (😂😂), въпреки че ще загубите някои разширени функции, като стоп думи.
  • Много бърз двигател. Ако разгледате тяхната страница в GitHub, ще видите, че времето за поглъщане и търсене е било в микросекунди в няколко случая! Разбира се, това беше тест на една машина, тъй като латентността на мрежата никога няма да позволи числата да бъдат толкова ниски.

Ако искате да видите този двигател в действие, отидете на тази връзка (една от техните потребителски компании) и играйте с полето за търсене, което виждате там:

Има определени ограничения за Sonic като търсачка. Разработчиците ги подчертаха и ги обсъдиха открито на страницата си в GitHub. Моят съвет би бил да разгледате внимателно този списък и да установите, че вашите случаи на употреба не са общи с техния домейн. Въпреки това всичко има ограничения; просто те се държат скрити и затова не го осъзнаваме, докато не стане твърде късно. Затова смятам Sonic за чудесен избор за търсачка.

TNTSearch

Сега имаме завладяващ запис в този списък. Първото интересно нещо е, че тази пълна с функции, готова за производство търсачка е написана на PHP!

Да, от всички възможни езици, PHP. И казвам това не защото мразя PHP, а защото това е краткотраен процес по замисъл.

Второто интересно нещо е техният лиценз, поне към момента на писане. Всъщност самият лиценз е MIT, така че там няма проблеми, но авторите класифицират този софтуер като PS4Ware; ако използвате TNTSearch в производството, трябва да им изпратите игра за PS4! 😂😂 Сега не е задължително, както показва „трябва“, но е невероятно смешно. Също така се надявам да го надстроят до лиценз за PS5, въпреки че в момента е твърде рано.

Както и да е, аз самият съм със силен опит в PHP + Laravel, високо оценявам усилията на тези момчета. Техният уебсайт не казва много, но изглежда показва, че са консултанти, така че силно препоръчвам да се свържете с тях, ако имате проекти!

Сега, има ли основателни причини да използвате TNTSearch във вашите проекти?

Да, има:

  • Кодиран в PHP, за PHP, от PHP. PHP екосистемата се нуждае от по-отдадени, висококачествени решения като това.
  • Важни функции като размито търсене, географско търсене и класификация на текст.
  • Лесна промяна на индекса за търсене, което е голяма гъвкавост, която липсва на много решения.
  • Стеминг, BM25 класиране и персонализирано токенизиране гарантират висока точност.
  • Лесно внедряване — както всеки друг пакет на Composer!
  Как да активирате 120 Hz на Xbox Series X и S

Можете да проверите работата на двигателя тук и да видите сами колко е бърз и точен. Отново бих подчертал аспекта на PHP: ако поддържате PHP проект, искате да останете в рамките на стените на PHP колкото е възможно повече (защо? помислете за разходите за повторно обучение). И за такива случаи TNTSearch предлага стойностно предложение, което е трудно да се откаже!

Веспа

Vespa е широко и тежко предложение. Подобно на няколко други вписвания в този списък, той е твърде голям, за да бъде уловен с няколко думи. Но трябва да опитам, така че ще го направя. 🙂 Vespa е търсачка, разбира се, но използването й като обикновена търсачка ще пропилее нейния потенциал.

Vespa е създадена да обработва безкрайни количества данни (Big Data) и да предоставя функции, управлявани от машинно обучение, и безкрайно персонализиране на всичкото отгоре.

Vespa се позиционира като конкурент на Elasticsearch и традиционните бази данни и осигурява прилично сравнение какво да използвате и кога.

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

Сега, като се има предвид, че генерирате огромни количества данни непрекъснато и искате да подобрите вземането на решения чрез AI/ML (описание, което пасва на много SaaS бизнеси днес), ето защо Vespa има много смисъл:

  • Отворен код: Без странни лицензи и без договори за прихващане. И нищо за плащане отгоре на това, въпреки че винаги подчертавам, че компаниите плащат редовна сума на проектите, които най-често използват (дори $50/месец ще им помогне много).
  • В реално време: Vespa е наистина в реално време. Той не може само да усвоява, смачква и търси данни, докато идват; дори конфигурацията му може да се променя в движение.
  • Мащабируеми и толерантни: Vespa е тривиална за мащабиране. Също така реагира много добре на внезапното изчезване на възли, осигурявайки висока надеждност.
  • Класиране и препоръки: Препоръките за търсене, класиране и Vespa могат да бъдат комбинирани със структурирани заявки, за да предоставят наистина точни резултати.
  • Безболезнен AI/ML: Vespa идва в комплект с висококачествени, предварително обучени ML модели. Не е необходимо да наемате 20 специалисти по данни, за да почистват и използват вашите данни.
  • Персонализирани плъгини: Има пълен набор от API, които помагат на разработчиците да създават персонализирани Java плъгини, ако трябва да променят начина, по който работи двигателят.

Без съмнение Vespa е масивна, така че е ясно за отбори, които са малко отвъд началното ниво – независимо дали става дума за размер на екипа, техническа мощ, инфраструктурни бюджети, ежедневни обеми данни или нещо друго. За този сегмент, Vespa ще постигне успех и е силно препоръчително.

Амбар

За някои фирми данните от търсенето не са спретнато трансформирани и вече не се съхраняват като JSON документи; по-скоро това е бъркотия в истинския смисъл на думата – хаотична колекция от всякакви документи като Word, PDF, HTML файлове и т.н. Ако сте един от тях и смятате, че няма надежда за вас, добре, кажете здравей на Амбар!

Най-хубавото на Ambar е големият тип файлове, с които може да работи:

  • Файлови формати на MS Office (.docx, .xlsx и др.), включително PowerPoint, Visio и Publisher!
  • OpenOffice файлови формати
  • PDF документи с автоматично OCR, приложено за извличане на информация.
  • Изображения
  • Имейл архивни формати като PST (здравейте, потребители на Outlook!)
  • Имейл съобщения с прикачени файлове

Екстрите също не свършват до тук. Ambar може да работи с големи файлове (над 30 MB), ZIP архиви и многопоточност за пълно използване на процесора и по-бързи резултати. Така че, ако имате документи за години, лежащи на някакъв диск на забравен сървър, време е да го върнете обратно и да подадете всичко на Ambar!

Заключение

Търсенето 🔎 е мощно, търсенето е магия и търсенето е навсякъде!

Може дори да е черна магия, но днес няма причина всеки (разбира се с помощта на разработчици) да не може да извлече ползите от нея. От фирми до физически лица и правителства, търсачките в този списък предоставят предложение с почти нулеви усилия с експоненциални ползи и въздействие.

Продължете и вземете облачен сървър и инсталирайте горепосочения софтуер за търсене, който искате да опитате.