Solr과 파이썬을 결합한 퍼스널라이제이션 기능 개발

소개

퍼스널라이제이션은 웹 및 애플리케이션 사용자에게 개별화된 경험을 제공하기 위해 중요한 기능입니다. Solr은 뛰어난 검색 및 검색 결과 정렬 기능을 제공하며, 파이썬은 강력한 데이터 처리 및 분석 기능을 가지고 있습니다. 이번 블로그에서는 Solr과 파이썬을 결합하여 퍼스널라이제이션 기능을 개발하는 방법에 대해 알아보겠습니다.

Solr 설정

먼저, Solr을 설치하고 설정해야 합니다. Solr에서는 사용자 프로필과 같은 개별 데이터를 처리할 수 있는 필드를 정의해야 합니다.

# Solr 설치
$ wget https://downloads.apache.org/lucene/solr/8.9.0/solr-8.9.0.tgz
$ tar xzf solr-8.9.0.tgz

# 새 Solr 코어 생성
$ cd solr-8.9.0
$ bin/solr start -e cloud

# 사용자 프로필 필드 추가
$ bin/solr create_collection -c users -s 1 -rf 1
$ bin/solr create_collection -c profiles -s 1 -rf 1
$ bin/solr create_collection -c user_profiles -s 1 -rf 1

# 필드 타입 및 필드 추가
$ curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-field": { "name":"user_id", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"name", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"age", "type":"pint", "stored":true, "indexed":true },
  "add-field": { "name":"gender", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"interests", "type":"text_general", "stored":true, "indexed":true },
  "add-field": { "name":"last_login", "type":"date", "stored":true, "indexed":true }
}' http://localhost:8983/solr/users/schema

$ curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-field": { "name":"user_id", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"profile_id", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"profile_name", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"interests", "type":"text_general", "stored":true, "indexed":true }
}' http://localhost:8983/solr/profiles/schema

$ curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-field": { "name":"user_id", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"name", "type":"text_general", "stored":true, "indexed":true },
  "add-field": { "name":"age", "type":"pint", "stored":true, "indexed":true },
  "add-field": { "name":"gender", "type":"string", "stored":true, "indexed":true },
  "add-field": { "name":"preferences", "type":"text_general", "stored":true, "indexed":true },
  "add-field": { "name":"last_login", "type":"date", "stored":true, "indexed":true }
}' http://localhost:8983/solr/user_profiles/schema

파이썬 코드 예시

Solr에 접근하기 위해 파이썬을 사용하여 REST API 호출을 수행할 수 있습니다. 아래는 Solr에 사용자 프로필을 추가하는 파이썬 코드의 예시입니다.

import requests
import json

url = "http://localhost:8983/solr/users/update?commit=true"
headers = {"Content-Type": "application/json"}
data = {
    "add": {
        "doc": {
            "user_id": "1",
            "name": "John Doe",
            "age": 30,
            "gender": "Male",
            "interests": ["Technology", "Cooking"],
            "last_login": "2022-01-01T00:00:00Z"
        }
    }
}

response = requests.post(url, headers=headers, json=data)
print(response.status_code)

퍼스널라이제이션 기능 적용

Solr을 사용하여 사용자 프로필을 저장하고 파이썬을 사용하여 Solr과 상호작용하는 기능을 개발했습니다. 이제 퍼스널라이제이션을 위해 사용자의 프로필에 기반한 추천 기능을 구현할 수 있습니다. 예를 들어, 사용자의 관심사와 유사한 프로필을 갖는 다른 사용자를 추천해줄 수 있습니다.

결론

Solr과 파이썬을 결합하여 퍼스널라이제이션 기능을 개발하는 방법에 대해 알아보았습니다. 이를 통해 사용자별로 개별화된 경험을 제공하는 애플리케이션을 구축할 수 있습니다. Solr의 강력한 검색 기능과 파이썬의 데이터 처리 능력을 최대한 활용하여 퍼스널라이제이션을 구현해보세요.

#Solr #파이썬