파이썬에서 서버리스 전문 검색
켈 휴면 상태 :? ?
Locasticsearch는 SQLITE Full Text 검색 기능으로 구동되는 서버리스 전체 텍스트 검색을 제공하지만 Elasticsearch API의 하위 집합과 호환하려고합니다.
이렇게하면 서비스를 설정하지 않고도 텍스트 검색 애플리케이션을 편안하게 개발하고 코드를 변경하지 않고도 스케일 또는 더 많은 기능을 위해 Elasticsearch로 원활하게 전환 할 수 있습니다.
즉,이 라이브러리에서 지원하는 서브 세트 내에서 기본 검색 작업을 수행하고 클러스터 배포를위한 정당화를 정당화 할 수있는 많은 문서 (~ 백만)가 없다면 Locasticsearch는 Elasticsearch의 더 빠른 대안이 될 수 있습니다.
from locasticsearch import Locasticsearch
from datetime import datetime
es = Locasticsearch()
doc = {
"author": "kimchy",
"text": "Elasticsearch: cool. bonsai cool.",
"timestamp": datetime(2010, 10, 10, 10, 10, 10),
}
res = es.index(index="test-index", doc_type="tweet", id=1, body=doc)
res = es.get(index="test-index", doc_type="tweet", id=1)
print(res["_source"])
# this will get ignored in Locasticsearch
es.indices.refresh(index="test-index")
res = es.search(index="test-index", body={"query": {"match_all": {}}})
print("Got %d Hits:" % res["hits"]["total"]["value"])
for hit in res["hits"]["hits"]:
print("%(timestamp)s %(author)s: %(text)s" % hit["_source"])
또한 Elasticsearch로 변환 할 수있는 단순화 된 API를 추가하고 있습니다.
pip install locasticsearchlocasticsearch를 사용해서는 안됩니다.
locasticsearch를 사용해야합니다.
기존 도구에 대한 몇 가지 빠른 생각, 자유롭게 추가/댓글을 달 수 있습니다.
가장 많이 특징된 순수한 파이썬 텍스트 검색 라이브러리는 다음과 같습니다.
전체 텍스트 검색의 큰 챔피언. 이것이 생산에서 사용해야 할 것입니다.
탄성 검색 API 호환성에 관심이없는 경우 로컬 전문 검색에 대한 좋은 권장 사항입니다.
pip install tantivy순수한 파이썬은 아니지만 Pyserini는 지역적이고 확장 가능한 것을 원한다면 좋은 타협입니다.
Django Haystack은 코드를 수정할 필요없이 다양한 검색어 백엔드 (예 : Solr, Elasticsearch, Whoosh, Xapian 등)를 연결할 수있는 통합 API를 제공합니다.
Gensim은 주제 모델링에 중점을 두지 만 텍스트 검색에 TfidfModel 과 SparseMatrixSimilarity 사용할 수 있습니다. 즉, 이것은 역 지수 (선형 검색)를 사용하지 않으므로 확장 성이 제한되어 있습니다.
Peewee는 실제로보다 일반적인 ORM이지만 SQLITE에서 전체 텍스트 검색을 사용할 수있는 추상화를 제공합니다.