반응형
Recent Posts
Recent Comments
관리 메뉴

개발잡부

[es] python elasticsearch analyze test 본문

ElasticStack/Elasticsearch

[es] python elasticsearch analyze test

닉의네임 2023. 3. 14. 18:44
반응형

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()

 

결과 

반응형

'ElasticStack > Elasticsearch' 카테고리의 다른 글

[es] min_score  (0) 2023.05.16
[es] N-gram tokenizer  (0) 2023.04.22
[es]샤드 크기 조정  (0) 2023.03.01
[es] nested object sort  (0) 2023.01.17
[es] 데이터 계층을 사용한 데이터 수명 주기 관리  (1) 2023.01.02
Comments