code

Node.js에 대한 좋은 인덱싱 / 검색 엔진이 있습니까?

codestyles 2020. 12. 13. 09:33
반응형

Node.js에 대한 좋은 인덱싱 / 검색 엔진이 있습니까?


Lucene과 같은 node.js 애플리케이션 을위한 좋은 오픈 소스 (LGPL 또는 허용 라이센스 포함) 인덱싱 엔진을 찾고 있습니다. In-process 인덱싱 및 검색을 찾고 있으며 Sphinx 또는 Solr와 같은 인덱싱 서버에 관심이 없습니다.

C / C ++ 라이브러리에 대한 바인딩을 만드는 것도 두려워하지 않기 때문에 이러한 종류의 제안에도 열려 있습니다.

지금까지 찾았습니다

  • 더 이상 적극적으로 유지되지 않는 것으로 보이는 node-clucene (그리고 몇 가지 공개 된 문제가 있음)
  • CLucene에 대한 자체 바인딩을 만들 수는 있지만 유지 관리가 매우 드물고 현재 버전도 Java Lucene보다 상당히 뒤쳐져 있습니다.
  • 동적 언어에 대한 바인딩을 만들 목적으로 설계된 것으로 보이는 Apache Lucy 이지만 지금까지 노드 바인딩 (또는 C API)이 없으며 바인딩 생성에 대한 문서를 찾지 못했습니다. 성능에 대한 벤치 마크도 찾지 못했습니다.
  • 버려진 것처럼 보이는 노드 검색
  • 아직 프로토 타입 인 것 같고 버려진 jsii
  • 웹 브라우저에서만 실행되도록 의도 된 완전 증명
  • 전체 인덱스 직렬화 만 허용하는 것으로 보이는 lunr.js 이므로 확장 가능하지 않습니다.

"직접 롤링"할 수 있지만 이미 존재하는 솔루션을 사용하고 싶습니다.

편집 : 독립형 인덱스 서버에 관심이없는 이유 : 빠른 프로세스 내 키-값 저장소 데이터베이스를 사용하므로 쿼리를 위해 프로세스를 벗어나야하는 것은 상당히 낭비 일 것입니다.


이전 답변에 대한 업데이트 일뿐입니다. 토론이 너무 많았 기 때문에이 업데이트가 손실되는 것을 원하지 않았습니다.

여기에서 다운로드 할 수 있습니다 .


예, 새로 출시 된 Norch를 확인하세요.

Norch는 node.js 용 검색 색인 모듈을 기반으로하며 , 이는 차례로 Google의 강력한 levelDB 색인을 기반으로합니다.

편집 : 빠른 "진행중인"검색 기능을 위해 검색 인덱스 모듈사용합니다 .


외부 인덱스 사용에 관심이없는 이유를 설명해 주시겠습니까? 전체 텍스트 검색의 경우 항상 PostgreSQL의 전체 텍스트 인덱싱 기능을 사용하는 것으로 되돌립니다. 매우 빠르며 인덱싱에는 전체 인덱스 업데이트 (예 : Solr)가 필요하지 않으며 결과가 Lucene 기반 솔루션 (예 : Elastic Search)보다 빠르게 반환됩니다. ).

그러나 정말로 in-process로하고 싶다면 Lunr : http://lunrjs.com/ 을보고 싶을 것입니다.- 브라우저뿐만 아니라 Node에서도 작동합니다.

편집 : 여기에 Postgres에 대한 통계가 Lucene보다 빠릅니다 : http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql- 슬라이드 49 참조.

편집 : 프로세스 내 / 외부에서 어떤 종류의 속도를 찾고 있는지 확실하지 않지만 PostgreSQL 데이터베이스는 땀을 흘리지 않고 초당 10 만 개의 쿼리를 수행 할 수 있으며 SSD에서도 마찬가지입니다. 성능 요구 사항을 과도하게 생각하고있을 수 있습니다. 결국 여러 노드로 이동해야하거나 (또는 ​​클러스터를 사용하여 모든 CPU를 활용해야 함) 어쨌든 in-process를 덤프해야합니다.


Full Text Search Light 는 전체 텍스트 검색을 수행하기위한 순수 JS 작성 노드 모듈입니다. 여기에서 현재 git 저장소 링크를 찾을 수 있습니다 : https://github.com/frankred/node-full-text-search-light

참고 URL : https://stackoverflow.com/questions/16625104/is-there-a-good-indexing-search-engine-for-node-js

반응형