我在将弹性搜索与现有应用程序集成时遇到了一些麻烦,但这应该是一个相当简单的问题。我能够创建和销毁索引,但由于某种原因,我无法将数据导入弹性搜索和查询它。
我正在使用 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]
我不太确定如何处理它,我能找到的关于这个错误的唯一参考建议事先创建你的索引,我相信我已经在这样做了。有没有人遇到过这个错误?或者你知道我可能不知道的好地方吗?
任何帮助表示赞赏。