5AMSUNG

[es] python elasticsearch analyze test 본문

Python

[es] python elasticsearch analyze test

짝구이 2023. 3. 16. 19:26
반응형

500개가 넘는 상품명의 토크나이징된 결과값을 달라고 한다..

노가다를 뛰까..

500개 정도면 할만한데

라고 생각했으나..

 

수정, 추가 등등  계속요청할꺼 같아서 만들어봄

 

local 에서 es 에 세팅된 analyzer 를  이용함

 

client  생성

client = Elasticsearch("https://id:pw@host:port/", ca_certs=False,
                       verify_certs=False)

 

analyze 쿼리 

def get_query():
    response_n = client.indices.analyze(
        index=INDEX_NAME,
        body={
            "analyzer": "index_analyzer",
            "text": "프랑스_떼땅져녹턴시티라이트_750ML"
        }
    )

    print(response_n)

 

전체소스 

import json

from elasticsearch import Elasticsearch

# POST hyper-item/_analyze
# {
#     "analyzer": "index_analyzer",
#     "text": "프랑스_떼땅져녹턴시티라이트_750ML"
# }
#
# POST hyper-item/_analyze
# {
#     "analyzer": "search_analyzer",
#     "text": "프랑스_떼땅져녹턴시티라이트_750ML"
# }

def csv_data():
    f_v = open("analyze20230314.txt",'w')
    count= 1;
    progress=0;
    with open(CSV_FILE) as data_file:
        for line in data_file:
            line = line.strip()
            lineArray = line.split(',')
            token = get_query(lineArray[2])
            token_string = []
            for tk in token["tokens"]:
                token_string.append(tk["token"])

            string_t =', '.join(token_string)+"\n"
            f_v.write(string_t)
    f_v.close()
    print("Done.")

def get_query(text):
    response_index = client.indices.analyze(
        index=INDEX_NAME,
        body={
            "analyzer": "index_analyzer",
            "text": text
        }
    )

    return response_index

if __name__ == '__main__':
    INDEX_NAME = "hyper-item"
    SEARCH_SIZE = 0

    client = Elasticsearch("https://id:pw@totalsearch.doo.co.kr:443/", ca_certs=False,
                           verify_certs=False)

    print("start")

    CSV_FILE = "../data/analyze_20230314.csv"
    # CSV_FILE = "../data/analyze_20230315.csv"
    csv_data()

 

결과 

 
반응형

'Python' 카테고리의 다른 글

[python] 날짜 다루기  (1) 2023.05.08
[python] mysql 연동 - PyMySQL  (0) 2023.05.08
[python] DB data to json file  (0) 2023.05.08
[ChatGPT] 프로그래밍 언어중 유망한 언어는?  (0) 2023.03.26
[python] python elasticsearch analyze test  (0) 2023.03.14