파이썬으로 Solr 인덱스를 생성하고 통계 분석 수행하기

많은 데이터를 검색하고 통계 분석을 수행하기 위해 Apache Solr을 사용하는 것은 좋은 선택입니다. Solr은 빠른 검색 및 데이터 조작을 위한 오픈 소스 검색 플랫폼으로, 파이썬을 사용하여 Solr 인덱스를 생성하고 통계 분석을 수행할 수 있습니다.

이 문서에서는 파이썬에서 Solr 인덱스를 생성하고 통계 분석을 수행하는 방법을 알아보겠습니다.

Solr 인덱스 생성

Apache Solr은 RESTful API를 제공하여 색인 작업을 수행할 수 있습니다. 파이썬에서는 requests 라이브러리를 사용하여 Solr API를 호출할 수 있습니다. 다음은 Solr에 문서를 색인하는 간단한 예제입니다.

import requests

solr_url = "http://localhost:8983/solr/my_collection/update/json/docs"

data = [
    {
        "id": "1",
        "title": "Example document 1",
        "content": "This is the content of document 1."
    },
    {
        "id": "2",
        "title": "Example document 2",
        "content": "This is the content of document 2."
    }
]

response = requests.post(solr_url, json=data)
print(response.text)

위의 예제에서는 solr_url 변수에 Solr의 엔드포인트 URL을 지정하고, data 변수에 인덱스할 문서 데이터를 정의합니다. requests.post() 메서드를 사용하여 Solr에 데이터를 전송하고, 응답을 확인합니다.

통계 분석 수행

파이썬을 사용하여 Solr 인덱스에서 통계 분석을 수행하는 것도 가능합니다. Solr은 다양한 통계적 기능을 제공하며, 파이썬에서 이러한 기능을 활용할 수 있습니다. 다음은 파이썬에서 Solr 통계 분석을 수행하는 예제입니다.

import requests

solr_url = "http://localhost:8983/solr/my_collection/select"

params = {
    "q": "*:*",
    "stats": "true",
    "stats.field": "price",
    "stats.facet": "category"
}

response = requests.get(solr_url, params=params)
data = response.json()

stats = data["stats"]["stats_fields"]["price"]
category_stats = data["stats"]["stats_fields"]["category"]

print(f"Min price: {stats['min']}")
print(f"Max price: {stats['max']}")
print(f"Avg price: {stats['mean']}")

print("Category Statistics:")
for category, stats in category_stats.items():
    print(f"{category}:")
    print(f"  Min price: {stats['min']}")
    print(f"  Max price: {stats['max']}")
    print(f"  Avg price: {stats['mean']}")

위의 예제에서는 solr_url 변수에 Solr의 쿼리 엔드포인트 URL을 지정하고, params 변수에 통계 분석을 위한 매개 변수를 정의합니다. requests.get() 메서드를 사용하여 Solr에 쿼리를 전송하고, 응답을 확인합니다.

예제에서는 price 필드의 최솟값, 최댓값, 평균값을 출력하고, category 필드를 기준으로 그룹화하여 통계 분석 결과를 출력합니다.

결론

파이썬을 사용하여 Solr 인덱스를 생성하고 통계 분석을 수행하는 것은 간단하며 유연한 방법입니다. 이를 통해 많은 양의 데이터에 대한 검색 및 통계 분석 작업을 효율적으로 수행할 수 있습니다. Solr의 다양한 기능과 파이썬의 강력한 데이터 처리 기능을 결합하여 원하는 결과를 얻을 수 있습니다.

#파이썬 #Solr