일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 데이콘
- 편스토랑
- SW Expert Academy
- gs25
- 우분투
- 맥북
- Docker
- github
- programmers
- Git
- ChatGPT
- 편스토랑 우승상품
- 백준
- 자연어처리
- ubuntu
- 프로그래머스
- 금융문자분석경진대회
- 프로그래머스 파이썬
- Real or Not? NLP with Disaster Tweets
- PYTHON
- 캐치카페
- 코로나19
- dacon
- 더현대서울 맛집
- AI 경진대회
- hackerrank
- 파이썬
- Baekjoon
- leetcode
- Kaggle
- Today
- Total
목록
반응형
elasticsearch (7)
솜씨좋은장씨
Python과 elasticsearch 라이브러리를 활용하여 es_client를 생성하고 elasticsearch에 검색식을 통해 결과를 받는 코드를 작성하였는데 Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/dist-packages/urllib3/connectionpool.py", line 382, in _make_request self._validate_conn(conn) File "/usr/local/lib/python3.6/dist..
ES를 활용하여 개발을 하다보면 Kibana가 설치되어있을때는 인덱스 조회, 검색 테스트 등을 UI를 통해 쉽게 진행할 수 있으나 Kibana가 설치되어있지 않거나 사용이 제한될 경우에는 터미널에서 명령어를 통해 조작을 해야하는 경우가 종종 있었습니다. 이번 글에서는 터미널에서 명령어를 통하여 인덱스를 다루는 방법들에 대해서 적어보려합니다. 설치된 곳은 localhost, 포트는 9200번이라고 가정하였습니다. 서버 IP와 포트가 다른 경우 [ localhost:9200 ] 부분을 변경하시어 사용하시기 바랍니다. 대부분의 명령어에서 curl을 활용하므로 curl이 설치되어있지 않은 경우 설치 후 진행하시기 바랍니다. 인덱스 목록 조회 $ curl -XGET localhost:9200/_cat/indice..
Python과 elasticsearch 라이브러리를 통하여 nested 또는 object 형식으로 매핑되어 있는 필드에 인덱싱을 진행하려고 하는데 ValueError: Circular reference detected 위와 같은 오류가 계속 발생하여 이게...뭐지....? 매핑 형식이 잘 못 된 것인가... 고민을 했습니다. 구글을 검색하다보니 json 을 만들때 자기 자신 json을 다시 자기 자신에게 특정 키로 접근을 하려고 할 때 위와 같은 오류가 발생하는 것 같았습니다. 이렇게 알고 다시 코드를 확인해보니 position['bounding_box'] = position 인덱싱하려고 데이터를 만드는 반복문 안에서 자기 자신을 계속 자기 자신에게 넣으려고 하는 곳을 발견하였고 해당 부분을 수정하니 해..
Elasticsearch에서 종종 reindexing 을 할 경우가 있습니다. 최근 프로젝트를 진행하면서 기존에 ES 서버에 인덱싱되어있는 인덱스를 새롭게 만든 서버에서 인덱싱을 할 일이 있었습니다. kibana에서 reindex 명령어를 입력하여 시도를 하였는데 Not whitelisted in reindex.remote.whitelist 위와 같은 오류를 만나게 되었습니다. 이를 해결하는 방법은 다음과 같습니다. 먼저 elasticsearch가 설치된 곳으로 이동합니다. 거기서 elasticsearch.yml 파일을 찾아 한 줄을 추가해주면 됩니다. reindex.remote.whitelist: "0.0.0.0:9200" reindex.remote.whitelist: "원하는IP:PORT" 그리고 나..
Elasticsearch가 설치된 서버와 api를 실행할 서버가 같으면서 개발한 API 에서 Elasticsearch를 연결할 때 es_client = Elasticsearch("http://localhost:9200") 위와 같이 Python과 Elasticsearh 라이브러리를 활용하여 연결하는 경우 Python과 Flask를 활용하여 개발한 API를 담은 이미지를 만들고 docker run -it -d --name api_contatiner -p 5000:5000 api_image 위의 명령어를 활용하여 container로 실행한 후 http://localhost:5000/search?query=%EC%95%88%EB%85%95 query를 보내 호출을 하려고하면 app.py가 실행되면서 Elast..
Python과 bulk API를 활용하여 인덱싱을 하던 중 elasticsearch.exceptions.ConnectionTimeout: ConnectionTimeout caused by - ReadTimeoutError(HTTPConnectionPool(host='localhost', port=9200): Read timed out. (read timeout=10)) 위와 같은 오류가 나면서 중간에 멈추는 현상이 계속 생겨 14만건의 데이터를 인덱싱하여야하지만 계속 3만건에서 멈추는 현상이 있었습니다. 이 문제는 연결 시간을 초과했을때 발생한다고 합니다. 해당하는 변수값은 es_client = ElasticSearch("http://localhost:9200") Elasticsearch를 연결하는 위의..
aws ec2 서버에서 nori를 사용하기위해 설치하고 Kibana에서 제대로 설치가 되었는지 확인해보기위해 GET _analyze { "tokenizer": "nori_tokenizer", "text": [ "동해물과 백두산이" ] } 위의 query를 실행하였을때 { "error" : { "root_cause" : [ { "type" : "illegal_argument_exception", "reason" : "failed to find global tokenizer under [nori_tokenizer]" } ], "type" : "illegal_argument_exception", "reason" : "failed to find global tokenizer under [nori_tokenize..