파이썬을 사용한 Solr API 호출 및 데이터 색인화

Solr은 Apache Lucene을 기반으로한 오픈소스 검색 플랫폼입니다. Solr을 사용하면 대량의 데이터를 빠르게 색인화하고 효율적으로 검색할 수 있습니다. 이번 포스트에서는 파이썬을 사용하여 Solr의 API를 호출하고 데이터를 색인화하는 방법에 대해 알아보겠습니다.

Solr API 호출하기

Solr API를 호출하여 데이터를 색인화하기 위해서는 requests 라이브러리를 사용해야 합니다. 먼저, requests 라이브러리를 설치해줍니다.

pip install requests

다음은 Solr API를 호출하는 파이썬 코드입니다.

import requests

def index_document(doc):
    url = 'http://localhost:8983/solr/<core_name>/update/json/docs'
    headers = {'Content-type': 'application/json'}
    response = requests.post(url, json=doc, headers=headers)
    
    if response.status_code == 200:
        print('Document indexed successfully')
    else:
        print('Error indexing document')

document = {'id': '1', 'title': 'Sample Document', 'content': 'This is a sample document for indexing'}
index_document(document)

위 코드에서 <core_name>을 색인하려는 Solr 코어의 이름으로 변경해야 합니다. index_document 함수는 Solr API를 호출하여 문서를 색인화하는 역할을 합니다. json 파라미터에 색인하려는 문서를 전달하고, 요청 헤더에 Content-type을 설정하여 JSON 데이터를 전송합니다. 응답 상태 코드가 200인 경우에는 성공적으로 문서가 색인화되었음을 출력하고, 그렇지 않은 경우에는 에러 메시지를 출력합니다.

Solr 데이터 색인화하기

Solr의 API를 사용하여 문서를 색인화하는 방법을 알아보았으니 이제 실제 데이터를 색인화하는 방법에 대해 알아보겠습니다.

import requests

def index_documents(docs):
    url = 'http://localhost:8983/solr/<core_name>/update/json/docs'
    headers = {'Content-type': 'application/json'}
    data = [json.dumps(doc) for doc in docs]
    response = requests.post(url, data='\n'.join(data), headers=headers)
    
    if response.status_code == 200:
        print('Documents indexed successfully')
    else:
        print('Error indexing documents')

documents = [
    {'id': '1', 'title': 'Document 1', 'content': 'This is document number 1'},
    {'id': '2', 'title': 'Document 2', 'content': 'This is document number 2'},
    {'id': '3', 'title': 'Document 3', 'content': 'This is document number 3'},
]
index_documents(documents)

위 코드에서는 여러 개의 문서를 한 번에 색인화하는 index_documents 함수를 사용합니다. data 변수에는 문서 목록을 JSON 형태로 변환한 후 개행 문자로 구분하여 전송합니다. 이를 통해 한 번의 API 호출로 여러 개의 문서를 색인화할 수 있습니다.

요약

이번 포스트에서는 파이썬을 사용하여 Solr의 API를 호출하고 데이터를 색인화하는 방법에 대해 알아보았습니다. requests 라이브러리를 사용하여 Solr API를 호출하고, JSON 형식으로 데이터를 전송하여 색인화할 수 있습니다. Solr의 강력한 검색 기능과 함께 파이썬을 사용하면 데이터의 효율적인 관리와 빠른 검색이 가능해집니다.


References:


#python #solr