탄성 검색을 기존 응용 프로그램과 통합하는 데 문제가 있지만 상당히 간단한 문제 여야합니다. 색인을 생성하고 삭제할 수는 있지만 어떤 이유로 데이터를 탄성 검색 및 쿼리하는 데 문제가 있습니다.탄성 검색 [PUT] 오류
필자는 pyes 라이브러리를 사용하고 있으며 정면으로 설명서를 찾는 것이 도움이되지 않습니다. 내가 먼저 데이터베이스를 생성하고 인덱스를 초기화하고있어
def initialize_transcripts(database, mapping):
database.indices.create_index("transcript-index")
def index_course(database, sjson_directory, course_name, mapping):
database.put_mapping(course_name, {'properties': mapping}, "transcript-index")
all_transcripts = grab_transcripts(sjson_directory)
video_counter = 0
for transcript_tuple in all_transcripts:
data_map = {"searchable_text": transcript_tuple[0], "uuid": transcript_tuple[1]}
database.index(data_map, "transcript-index", course_name, video_counter)
video_counter += 1
database.indices.refresh("transcript-index")
def search_course(database, query, course_name):
search_query = TermQuery("searchable_text", query)
return database.search(query=search_query)
, 다음의 데이터를 추가하고 두 번째 두 가지 방법으로 검색하려고 : 이것은 내 현재 코드입니다. 저는 현재 다음과 같은 오류 받고 있어요 :
raise ElasticSearchException(response.body, response.status, response.body)
pyes.exceptions.ElasticSearchException: No handler found for uri [/transcript-index/test-course] and method [PUT]
내가 그것을 접근하는 방법을 아주 잘 모르겠습니다을, 나는이 오류를 찾을 수있는 유일한 참조는 내가 이미하고있는 중이 믿는 사전에 인덱스를 생성 제안했다. 이전에이 오류가 발생 했나요? 또는 내가 모를 수도있는 좋은 곳을 알고 있습니까?
도움을 주시면 감사하겠습니다.
대답은 아니지만 elasticsearch 용 라이브러리 몇 개를 살펴본 결과 요청 모듈을 사용하여 상호 작용하는 것보다 큰 개선이 없었습니다. Elastic Search의 복잡한 DSL에는 라이브러리가 할 일이 너무 많습니다. 당신은 일반적으로 어떻게 분노를 발견 했습니까? –
솔직히 말해서, 환상적이 아닙니다. 단순한 일을 간단하게 만들지 만 문서는 일반적으로 부족하고 ES에서 확장 된 유용한 기능을 많이 혼란스럽게합니다. 요청 모듈을 통해서만 상호 작용할 수있는 자원이 있습니까? 나는 그걸로 전환하고 싶을 것 같아. 파이썬에서 –
정말 쉽습니다. 좋아하는 링크가 없지만 Google은 아마 당신의 친구입니다. 요청을 통해 json 페이로드 (쿼리)를 사용하여 ES에 쉽게 게시 할 수 있습니다. 당신이 필터 톤과 패싯을 다루기 시작하면 (ja) IM에 대해서만 요청 로직을 json 문서로 가지고 ES에 전달하는 것이 좋다. 관계형 DB에 저장된 proc과 비슷하다. 또한 결과를 dicture로 deserialising하기위한 python json 라이브러리를 좋아합니다! –