일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git
- hackerrank
- 더현대서울 맛집
- 편스토랑
- Real or Not? NLP with Disaster Tweets
- 편스토랑 우승상품
- AI 경진대회
- Kaggle
- 코로나19
- 캐치카페
- 데이콘
- leetcode
- gs25
- ubuntu
- 파이썬
- programmers
- dacon
- PYTHON
- Docker
- ChatGPT
- github
- Baekjoon
- 프로그래머스 파이썬
- 우분투
- 자연어처리
- 금융문자분석경진대회
- 백준
- 맥북
- 프로그래머스
- SW Expert Academy
- Today
- Total
목록
반응형
Programming/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를 설치해두고 편하게 사용하기 위하여 Elasticsearch의 9200 포트, Kibana의 5601 포트에 대해서 외부의 모든 접근을 허용하도록 인바운드 규칙을 설정해 두었었습니다. 설치를 하고 테스트로 제대로 동작하는지 인덱스를 생성해보고 더미 데이터를 인덱싱 해두었다가 이제 실제로 사용하려고 다시 Kibana를 켜서 인덱스 목록을 보았는데 ???????????????????????????????????????????? 테스트를 하면서 만들었던 인덱스는 사라져있고 그 자리에 인덱스 이름부터 날좀보소 하는 인덱스 하나만 남아 있었습니다. 뭐지? 하고 궁금해서 확인해보니 확인에 사용한 검색식 GET /read_me/_search { "q..
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" 그리고 나..
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..