파이썬을 사용한 Solr 검색 결과의 시각화 방법

Solr은 Apache Lucene을 기반으로 한 오픈 소스 검색 플랫폼입니다. Solr을 사용하여 데이터를 색인하고 검색하는 것은 간단하지만, 검색 결과를 시각화하는 것은 더욱 중요한 작업입니다. 이번 블로그 포스트에서는 파이썬을 사용하여 Solr의 검색 결과를 시각화하는 방법에 대해 알아보겠습니다.

Solr에서 검색 결과 가져오기

먼저, Solr에서 검색 결과를 가져오는 방법을 알아보겠습니다. Solr의 REST API를 사용하여 검색을 수행하고, 결과를 JSON 형식으로 받아올 수 있습니다. 다음은 requests 라이브러리를 사용하여 Solr에서 검색 결과를 가져오는 예제 코드입니다.

import requests

def get_search_results(query):
    solr_url = "http://localhost:8983/solr/collection1/select?q={}&wt=json".format(query)
    response = requests.get(solr_url)
    results = response.json()
    return results

위 코드에서 query는 검색할 키워드를 나타내며, solr_url은 Solr 서버의 URL입니다. requests.get() 함수를 사용하여 Solr에 GET 요청을 보내고, 결과를 JSON 형식으로 받아옵니다. 결과는 파이썬의 딕셔너리 형태로 반환됩니다.

검색 결과 시각화하기

검색 결과를 시각화하기 위해 matplotlib 라이브러리를 사용할 수 있습니다. 예를 들어, Solr에서 검색한 결과 중에서 특정 필드의 값들을 막대 그래프로 표현하는 방법을 알아보겠습니다. 다음은 이를 위한 예제 코드입니다.

import matplotlib.pyplot as plt

def visualize_results(results, field):
    data = results["response"]["docs"]
    values = [doc[field] for doc in data]
    labels = [str(i) for i in range(len(values))]  # X축 레이블로 문서 순서 사용

    plt.bar(labels, values)
    plt.xlabel("Document")
    plt.ylabel(f"{field} Value")
    plt.title(f"{field} Distribution")
    plt.show()

위 코드에서 results는 Solr에서 받아온 검색 결과입니다. field는 필드의 이름을 나타냅니다. 결과에서 해당 필드의 값들을 추출하여 values 리스트에 저장합니다. 그리고 matplotlibbar 함수를 사용하여 막대 그래프를 그립니다. xlabel, ylabel, title 함수를 사용하여 축 레이블과 제목을 지정합니다. 마지막으로 show 함수를 호출하여 그래프를 보여줍니다.

실행 예제 및 결과

query = "Python"
results = get_search_results(query)
visualize_results(results, "score")

실행 예제에서는 “Python”을 검색 쿼리로 사용하여 Solr에서 검색 결과를 가져옵니다. 그리고 visualize_results 함수를 호출하여 results 딕셔너리와 “score” 필드를 매개변수로 전달합니다. 이를 실행하면 “score” 필드의 값들에 대한 막대 그래프가 나타납니다.

결론

파이썬을 사용하여 Solr에서 검색 결과를 시각화하는 방법에 대해 알아보았습니다. Solr의 REST API를 사용하여 검색 결과를 가져오고, matplotlib 라이브러리를 사용하여 시각화를 수행할 수 있습니다. 이를 통해 Solr에서 검색한 결과를 보다 직관적으로 이해할 수 있게 됩니다.

참고 자료:

#visualization #solr