매일 업데이트
2022-08-12 11:27 13 min

8 자체 호스팅 강력한 검색 🔍 제품용 엔진 소프트웨어

애플리케이션에 강력한 검색 기능을 추가하는 것이 복잡하거나 많은 시간을 필요로 하는 일이라고 생각할 수 있지만, 실제로는 그렇지 않습니다. 여기 몇 가지 확실한 추천 사항을 소개합니다!

지난 20~30년 동안 수많은 기술들이 발전했지만, 검색 기능은 우리의 일상생활에서 없어서는 안 될 필수적인 기술 중 하나로 자리매김했습니다. 전자상거래 웹사이트, 블로그, 지식 기반 등 어디에서나 검색 기능을 찾아볼 수 있습니다. 단순한 검색 상자나 아이콘이 보기 좋아서가 아니라, 꼭 필요한 작업을 수행하기 때문입니다.

만약 여러분이 훌륭한 검색 솔루션을 찾고 있거나 기존 솔루션에 싫증이 났다면 어떻게 해야 할까요?

다행히도, 과도한 라이선스 비용을 지불하거나 20명 이상의 개발자와 시스템 관리자로 구성된 팀을 운영할 필요는 없습니다. 오늘은 특히 1~2명 규모의 개발팀을 가진 소규모 기업들이 즉시 설치하고 통합할 수 있는 몇 가지 검색 엔진을 추천하고자 합니다.

메일리서치

가장 뛰어난 검색 엔진 중 하나로 메일리서치(MeiliSearch)를 꼽을 수 있습니다.

그렇다면 왜 메일리서치가 최고의 추천 목록에 포함될까요?

이유는 다음과 같습니다.

오픈 소스

메일리서치의 모든 소스 코드는 GitHub에 공개되어 있습니다. 개발자들은 코드의 모든 부분을 직접 검토할 수 있으며, 기업들은 프로그램 내에 백도어나 스캐너가 없다는 것을 확신할 수 있습니다. 또한, 경험이 풍부한 개발자들은 기술 개선에 기여할 수 있습니다.

훌륭한 사용자 경험(UX)

메일리서치는 복잡한 규칙을 따르지 않습니다. 예를 들어, “a – b”가 b가 아님을 의미하는 것과 같은 규칙은 없습니다. 자연스럽게 검색어를 입력하면 결과가 유동적으로 나타나기 시작합니다. 이 엔진은 매우 관대하고 포용력이 뛰어나 오타나 동의어를 사용하더라도 정확한 결과를 제공합니다. 또한 다양한 언어를 지원합니다.

훌륭한 개발자 경험(DevEx)

개발자들은 메일리서치를 선호할 것입니다! 사용자 정의 및 확장성이 뛰어날 뿐만 아니라 REST API를 통해 인터페이스할 수 있습니다. 문서화도 훌륭하고 완벽합니다. 어떤 언어로든 HTTP 호출을 수행하는 것은 간단하지만, 급하게 처리해야 하는 사람들을 위해 JavaScript, Ruby, Python, Golang, PHP 등 5가지 언어로 된 예제가 제공됩니다.

간단한 검색 솔루션은 사용 및 설정이 간단해야 합니다. 메일리서치는 이러한 모든 요건을 충족합니다. 지금 바로 사용하려면 DigitalOcean에서 한 번의 클릭으로 시작해 보십시오.

솔러

아파치 프로젝트의 일부인 솔러(Solr)는 수년 동안 사용되어 온 검색 엔진입니다. 이 엔진은 인기 있는 검색 솔루션인 ElasticSearch를 뒷받침하는 것으로 유명하고 매우 안정적인 루씬(Lucene) 라이브러리를 기반으로 합니다. 이 모든 사실은 솔러가 가장 강력하고 확장 가능하며 표준을 준수하고 기능이 풍부하며 신뢰할 수 있는 검색 솔루션이라는 것을 의미합니다.

디즈니, 이베이, 넷플릭스, 자포스, 베스트바이와 같은 대기업에서 솔러를 사용하고 있습니다. 그렇다고 해서 소규모의 단순한 설치(예: 단일 시스템, 확장 없음, 장애 조치 없음)에서는 솔러의 강력한 기능을 사용할 수 없다는 의미는 아닙니다. 때로는 그것으로도 충분할 수 있습니다.

그렇다면 왜 솔러를 사용해야 할까요?

다음은 몇 가지 주요 이유입니다.

정확하고 강력한 검색 기능

솔러는 세계에서 가장 정확하고 유능하며 강력한 검색 시스템 중 하나입니다. 오픈 소스이기 때문에 (앞서 언급한 것처럼) 유명 기업들이 이 솔루션을 선택하는 이유를 알 수 있습니다. 문서를 처리하고 검색 쿼리에 응답하는 능력은 타의 추종을 불허합니다.

간단한 설치 및 유지 관리

솔러를 설치하는 것은 프로그램의 압축을 풀고 실행하는 것만큼 간단합니다. 단일 시스템의 경우 복잡한 유지 관리가 필요하지 않습니다. 일반적으로 검색 솔루션과 특히 Java 기반 기술은 RAM을 많이 사용할 수 있으므로 RAM 사용량을 주의 깊게 살펴봐야 합니다. 이는 빠른 읽기/쓰기를 위해 모든 데이터를 RAM에 유지하려고 하기 때문입니다.

관리자 패널

솔러는 시각적인 모니터링 및 구성을 위한 관리자 패널을 제공합니다. 약간의 교육을 받으면 개발자가 아닌 사용자도 주요 차트를 읽는 방법을 배울 수 있습니다. 이 목록에 있는 많은 검색 솔루션에는 이러한 기능이 없습니다.

이미지 출처: 공식 사이트

API 기반, 표준 준수

솔러는 JSON, CSV, XML 및 바이너리와 같은 다양한 형식을 처리할 수 있는 API를 통해 결과를 제공합니다. Java 개발자에게 큰 이점인 JMX 표준에 따라 모니터링 데이터를 출력합니다.

솔러에 대해 더 많은 이야기를 할 수 있지만, 모든 것을 다루려고 하면 끝이 없을 것입니다. 😂 솔러는 최고 수준의 솔루션이며, 어떤 유형의 데이터로 작업하든 절대 후회하지 않을 것입니다.

엘라스틱서치

엘라스틱서치(Elasticsearch)는 자유 형식 텍스트 검색의 선구자이며, 지금도 여전히 그 위치를 굳건히 지키고 있습니다. 실제로 오늘날 프로그래머나 시스템 관리자에게 검색 엔진 추천을 요청하면 엘라스틱서치가 유일한 이름으로 언급될 가능성이 높습니다. 물론, 요즘에는 상당수의 사람들이 알골리아(Algolia)와 같은 것을 추천하겠지만, 우리는 이미 그 내용에 대해 다뤘습니다. 🤪

위 이미지의 "무료 평가판 시작" 버튼에 현혹되지 마십시오. 엘라스틱서치 기술 자체는 오픈 소스이며 무료이지만, 회사는 노력을 통해 수익을 창출하고 있으며 기업을 대상으로 하고 있습니다. 따라서 여기서 볼 수 있는 것은 클라우드 서비스에 대한 평가판으로, 특히 관련 클러스터가 있는 경우 엘라스틱서치를 쉽게 관리할 수 있도록 지원합니다.

정리해야 할 내용이 많군요. 요약하자면 엘라스틱서치는 오픈 소스이며 무료로 사용할 수 있으며, 누구나 쉽게 설정하고 제한 없이 사용할 수 있습니다.

이제 예상대로 엘라스틱서치를 선택해야 하는 이유를 살펴보겠습니다.

  • 완벽하게 테스트를 거친 검색 엔진입니다. 즉, "이상한" 버그가 발생하더라도 해결책을 찾을 가능성이 훨씬 더 높다는 의미입니다.
  • 클러스터링, 확장성, 비동기 쓰기에 최적화되어 있습니다.
  • 간단한 REST API를 통해 액세스할 수 있습니다 (다른 모든 솔루션이 복제한 기능).
  • 문서 지향적이지만 필요에 따라 스키마를 지원합니다.
  • 엄청나게 빠르고 정확한 결과와 구성 가능한 검색 속도를 제공합니다.
  • 양과 유용성 측면에서 뛰어난 문서 자료를 제공합니다.
  • 편의를 위해 비용을 지불하고 싶다면 완벽한 검색 및 분석 클라우드 플랫폼(ELK 스택)을 사용할 수 있습니다.

엘라스틱서치에 대해 유일하게 지적할 수 있는 단점은 엄청난 RAM 소비입니다. 컨설턴트로서 고객에게 월 20달러짜리 서버에 투자하도록 설득하는 것조차 어려운 일인데, 엘라스틱서치가 요구하는 사양과는 거리가 멉니다.

엘라스틱서치에 대해 더 자세히 배우고 싶다면 이 Udemy 강좌를 확인해 보십시오.

타입센스

타입센스(Typesense)는 가볍고 간단하지만 강력한 검색 엔진입니다. 유용성과 단순함을 추구하는 사용자라면 반드시 사용해 봐야 할 솔루션입니다.

타입센스의 가장 큰 장점 중 하나는 웹사이트에서 바로 사용해 볼 수 있다는 것입니다. 이렇게 하면 모든 것을 설정하고 API를 시도하는 데 드는 시간과 좌절감을 줄일 수 있습니다. 또한, 하나 이상의 기능이 원하는 방식으로 작동하지 않는다는 것을 알게 될 수 있습니다.

엔진에 버그가 있다는 뜻은 아닙니다. 엔진이 선호하는 방식이 아닐 수도 있고, 비즈니스 도메인과 완전히 충돌할 수도 있습니다. 오타, 특수 기호, 동의어 등... 엔진이 출력하는 결과를 홈페이지에서 바로 확인할 수 있습니다(이를 위해 도서 데이터베이스를 사용하고 있습니다).

보시다시피 이 섹션은 최상위 섹션 바로 아래에 있습니다. 검색 상자에 "tra"라는 검색어를 입력했고, 아래에는 도서 데이터베이스에서 일치하는 결과(메타데이터 – 전체 결과, 현재 페이지 등)가 표시됩니다.

타입센스는 검색 엔진 선택에 있어서 매우 유용합니다.

  • 이 기술은 완전한 오픈 소스이며 누구나 환영합니다.
  • 필요한 경우 HA(고가용성) 설정을 쉽게 구성할 수 있습니다.
  • 검색어의 오타 및 기타 노이즈에 대해 관대합니다.
  • 검색 결과를 세밀하게 제어해야 하는 사용자를 위한 고급 필터링 시스템을 제공합니다.
  • 간단한 REST API를 제공합니다. 문서를 찾기 위해 더 많은 노력을 기울여야 할 수도 있지만 말입니다!
  • 주요 언어(JavaScript, Python, Ruby, PHP)에서 클라이언트(SDK)를 사용할 수 있습니다.

마지막으로, 새로운 서버를 설정하는 것이 귀찮다면 타입센스는 클릭 한 번으로 프로비저닝이 완료되는 클라우드 제품도 제공합니다. 요금은 시간 단위로 청구되며, 읽기 및 쓰기는 무제한입니다. 솔직히 말해서, 미리 가격을 확인하고 순이익을 계산했다면 이것이 대부분의 기업에게 더 나은 선택이라고 말하고 싶습니다.

전반적으로 타입센스는 작고 매끄러우며 정확하고 실제 업무에 필요한 도구가 필요한 경우에 매우 적합합니다.

소닉

소닉(Sonic)은 "몇 MB의 RAM"에서 실행되는 ElasticSearch 대안임을 자랑스럽게 내세웁니다.

어떻게 이런 일이 가능할까요?

JVM(Java Virtual Machine)은 RAM을 많이 사용하는 것으로 알려져 있습니다(일반적으로 JVM을 시작하는 데 약 1GB의 RAM이 필요합니다). 따라서 러스트(Rust) 언어로 코딩된 이 엔진은 (개발자에게 완전한 제어 및 메모리 안전을 제공) 매우 빠르게 실행되고 몇 MB의 RAM만 사용할 수 있다는 것은 놀라운 일이 아닙니다.

진정하세요! 이것은 프로젝트 마스코트입니다.

이 글을 쓰는 시점에서 몇몇 회사가 사용자 목록에 있지만 이름을 추가하는 데 신경 쓰지 않은 회사가 몇 군데 더 있을 것이라고 확신합니다. 정확히 언제, 어떻게 소닉을 접했는지 기억이 나지 않지만, 이전에도 소닉에 대해 들어본 적이 있습니다. 당시에는 메모리 소비량이 적은 대안을 보고 기뻤지만, 안정화하고 숨겨진 버그를 수정하는 데 시간이 필요하다고 생각했습니다. 이제 어느 정도 준비가 된 것 같습니다. 소닉이 얼마나 인기를 얻게 될지는 시간이 말해줄 것입니다.

오랜 회상을 뒤로하고, 조직/프로젝트에서 소닉을 사용해야 하는 이유는 무엇일까요?

다음은 몇 가지 이유입니다.

  • 검색 엔진이 사용하는 메모리 사용량이 매우 적습니다.
  • 라이브러리를 모든 주요 프로그래밍 언어에서 사용할 수 있습니다. Node, PHP, Rust는 작성자가 직접 발표한 것이고, 다른 라이브러리는 커뮤니티에서 만든 것입니다(Elixir 및 Nim과 같은 이국적인 것들도 다루므로 기뻐하십시오!).
  • 여러 언어를 지원합니다.
  • 예기치 않은 사실! 새로운 언어를 사용할 수 있고 엔진은 작동하지만(😂😂), 중지 단어와 같은 일부 고급 기능은 사용할 수 없습니다.
  • 매우 빠른 엔진입니다. GitHub 페이지를 확인하면 색인 및 검색 시간이 여러 경우에 마이크로초 단위임을 알 수 있습니다! 물론 네트워크 지연 시간으로 인해 숫자가 이렇게 낮지는 않겠지만, 이것은 단일 시스템 테스트였습니다.

이 엔진이 작동하는 모습을 보려면 이 링크(사용자 회사 중 하나)로 이동하여 검색 상자를 사용해 보십시오.

검색 엔진으로서 소닉에는 몇 가지 제한 사항이 있습니다. 개발자들은 GitHub 페이지에서 공개적으로 강조 표시하고 논의했습니다. 제 조언은 이 목록을 자세히 살펴보고 사용 사례가 해당 도메인과 공통되지 않는지 확인하는 것입니다. 모든 것에는 한계가 있다는 점을 기억하십시오. 단지 숨겨져 있을 뿐이고, 너무 늦기 전에는 깨닫지 못할 수도 있습니다. 따라서 소닉은 검색 엔진으로서 훌륭한 선택이라고 생각합니다.

TNT검색

이제 이 목록에 매력적인 항목이 하나 있습니다. 첫 번째 흥미로운 점은 이 기능이 완벽하고 프로덕션에 사용할 수 있는 검색 엔진이며, PHP로 작성되었다는 것입니다!

네, 가능한 모든 언어 중에서 PHP입니다. 제가 PHP를 싫어해서가 아니라, PHP는 설계상 수명이 짧은 프로세스이기 때문입니다.

두 번째로 흥미로운 점은 적어도 글을 쓰는 시점의 라이선스입니다. 실제로 라이선스 자체는 MIT이므로 문제가 없지만, 작성자는 이 소프트웨어를 PS4Ware로 분류했습니다. 프로덕션에서 TNTSearch를 사용하는 경우 PS4 게임을 보내야 합니다! 😂😂😂 물론 "해야 한다"는 말처럼 필수는 아니지만, 믿기지 않을 정도로 재미있습니다. 그들이 PS5 라이선스로 업그레이드하기를 바라지만, 아직은 너무 이른 것 같습니다.

어쨌든 강력한 PHP + Laravel 배경을 가지고 있기 때문에 이 사람들의 노력에 감사합니다. 웹사이트에 많은 정보는 없지만, 컨설턴트임을 나타내는 것 같으므로 프로젝트가 있으면 연락하는 것이 좋습니다!

이제 프로젝트에서 TNTSearch를 사용해야 하는 좋은 이유가 있을까요?

네, 있습니다:

  • PHP로, PHP용으로, PHP로 코딩되었습니다. PHP 생태계에는 이와 같은 더욱 전문적이고 고품질 솔루션이 필요합니다.
  • 퍼지 검색, 지리 검색, 텍스트 분류와 같은 중요한 기능을 제공합니다.
  • 많은 솔루션에서 누락된 주요 유연성인 검색 인덱스를 쉽게 변경할 수 있습니다.
  • 형태소 분석, BM25 순위, 사용자 정의 토큰화는 높은 정확도를 보장합니다.
  • 다른 Composer 패키지와 마찬가지로 간편하게 배포할 수 있습니다!

여기에서 엔진 성능을 확인하고 얼마나 빠르고 정확한지 직접 확인할 수 있습니다. PHP 측면을 다시 강조하고 싶습니다. PHP 프로젝트를 유지 관리하는 경우, 가능한 한 PHP 영역 안에 머물고 싶을 것입니다 (이유는 무엇일까요? 재교육 비용을 생각해보세요). 이러한 경우 TNTSearch는 거부하기 어려운 가치 제안을 제공합니다!

베스파

베스파(Vespa)는 광범위하고 무거운 솔루션입니다. 이 목록에 있는 다른 몇 가지 항목과 마찬가지로 너무 방대하여 몇 마디로 요약할 수 없습니다. 하지만 노력해야 하므로 시도해 보겠습니다. 🙂 베스파는 검색 엔진이기는 하지만 일반적인 검색 엔진으로 사용하면 잠재력을 낭비하게 됩니다.

베스파는 방대한 양의 데이터(빅 데이터)를 처리하고 머신 러닝 기반 기능과 사용자 정의 기능을 무한정 제공하도록 설계되었습니다.

베스파는 스스로를 ElasticSearch 및 기존 데이터베이스의 경쟁자로 포지셔닝하며, 언제 무엇을 사용해야 하는지에 대한 적절한 비교를 제공합니다.

보시다시피 머신 러닝 기반 작업에 더 가까이 다가갈수록 베스파는 더 많은 의미를 갖게 됩니다. 중소기업을 위한 순수 검색 엔진으로서 다른 옵션에 비해 장점이 없다고 생각합니다.

이제 지속적으로 방대한 양의 데이터를 생성하고 AI/ML(오늘날 많은 SaaS 비즈니스에 적합한 설명)을 통해 더 나은 의사 결정을 내리기를 원한다는 점을 고려할 때, 베스파가 매우 적합한 이유는 다음과 같습니다.

  • 오픈 소스: 이상한 라이선스나 함정 계약이 없습니다. 그 외에는 지불해야 할 것도 없지만, 저는 회사가 가장 많이 사용하는 프로젝트에 정기적인 금액을 지불해야 한다고 항상 강조합니다 (월 50달러라도 큰 도움이 될 것입니다).
  • 실시간: 베스파는 진정한 실시간입니다. 들어오는 데이터를 요약, 처리 및 검색할 수 있을 뿐만 아니라, 구성을 즉석에서 수정할 수도 있습니다.
  • 확장 가능하고 관대함: 베스파는 규모가 작습니다. 또한 노드의 갑작스러운 소멸에 매우 잘 대응하여 높은 신뢰성을 제공합니다.
  • 순위 및 권장 사항: 검색, 순위 지정, 베스파 권장 사항은 구조화된 쿼리와 융합되어 진정으로 정확한 결과를 제공할 수 있습니다.
  • 무통 AI/ML: 베스파는 사전 훈련된 고품질 ML 모델과 함께 제공됩니다. 데이터를 정리하고 사용하기 위해 20명의 데이터 과학자를 고용할 필요가 없습니다.
  • 사용자 정의 플러그인: 개발자가 엔진 작동 방식을 변경해야 하는 경우 사용자 정의 Java 플러그인을 생성하는 데 도움이 되는 완벽한 API 세트가 있습니다.

베스파는 의심할 여지 없이 매우 방대하기 때문에 팀 규모, 기술적 능력, 인프라 예산, 일일 데이터 볼륨 등 무엇이든 시작 단계를 조금 넘어선 팀에게 적합합니다. 이 분야에서 베스파는 큰 성공을 거둘 것이며 강력히 추천합니다.

암바

일부 기업의 경우 검색 데이터가 이미 JSON 문서로 깔끔하게 변환되어 저장되어 있는 것이 아닙니다. 오히려 다양한 유형의 문서(Word, PDF, HTML 파일 등)가 섞여 있는 혼란스러운 상태일 수 있습니다. 당신이 그러한 기업 중 하나이고 희망이 없다고 생각한다면, Ambar를 만나보십시오!

암바의 가장 큰 장점은 다음과 같은 대용량 파일로 작업할 수 있다는 것입니다.

  • PowerPoint, Visio 및 Publisher를 포함한 MS Office 파일 형식(.docx, .xlsx 등)!
  • 오픈오피스 파일 형식
  • 정보 추출을 위해 자동 OCR이 적용된 PDF 문서
  • 이미지
  • PST와 같은 이메일 아카이브 형식(Outlook 사용자 환영!)
  • 첨부 파일이 있는 이메일 메시지

이것이 전부가 아닙니다. 암바는 대용량 파일(30MB 이상), ZIP 아카이브, 멀티스레딩 작업을 통해 CPU를 최대한 활용하고 빠른 결과를 제공할 수 있습니다. 잊혀진 서버의 일부 디스크에 몇 년 동안 문서가 쌓여 있다면, 지금이 바로 암바에 모든 것을 제공할 때입니다!

결론

검색 🔎은 강력하고, 검색은 마법과 같으며, 검색은 어디에나 있습니다!

흑마법과 같을 수도 있지만, 오늘날에는 모든 사람(물론 약간의 개발자 지원이 있다면)이 그 이점을 누릴 수 없는 이유가 없습니다. 기업에서 개인, 정부에 이르기까지 이 목록에 있는 검색 엔진은 기하급수적인 이점과 영향력을 제공하며 거의 제로에 가까운 비용으로 사용할 수 있습니다.

주저하지 말고 클라우드 서버를 가져와서 위에서 언급한 검색 소프트웨어를 설치하고 직접 경험해 보십시오.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.