2017-12-27 3 views
0
내가 elasticsearch 6.1을 사용하고 내가이 doc 다음 내 설정으로 기본 동의어 필터를 추가하려고

읽는 동안 :elasticsearch 6.1 오류 : IOException이는 synonyms_path_path

curl -XPUT 'localhost:9200/test_index?pretty' -H 'Content-Type: application/json' -d' 
{ 
"settings": { 
    "index" : { 
     "analysis" : { 
      "analyzer" : { 
       "search_synonyms" : { 
        "type": "custom", 
        "tokenizer" : "keyword", 
        "filter" : ["lowercase","synonyms"] 
       } 
      }, 
      "filter" : { 
       "synonyms" : { 
        "type" : "synonym", 
        "synonyms_path" : "analysis/synonyms.txt" 
       } 
      } 
     } 
    } 
} 
}' 

: 여기 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html

은 내 코드입니다 나는 문제가에서 오는 생각

{ 
    "error" : { 
    "root_cause" : [ 
     { 
     "type" : "illegal_argument_exception", 
     "reason" : "IOException while reading synonyms_path_path: /usr/share/elasticsearch/config/analysis/synonyms.txt" 
     } 
    ], 
    "type" : "illegal_argument_exception", 
    "reason" : "IOException while reading synonyms_path_path: /usr/share/elasticsearch/config/analysis/synonyms.txt", 
    "caused_by" : { 
     "type" : "no_such_file_exception", 
     "reason" : "/usr/share/elasticsearch/config/analysis/synonyms.txt" 
    } 
    }, 
    "status" : 400 
} 

: 그리고 다음과 같은 오류 메시지가 "... 읽는 synonyms_path_path :"아마 광주있는이어야한다 st "... 읽기 동의어 _ 경로 :".

그러나 나는 문서에서 언급 한 모든 기능을 존중한다고 생각합니다. 내가 넣어 단지하려고하면

또한, :

"filter" : { 
    "synonyms" : { 
      "type" : "synonym", 
      "synonyms" : "analysis/synonyms.txt" 
     } 
} 

을 그냥

내 synonyms.txt는 문서에 같이 동일한 파일입니다 ... 다음 파일을 읽지 않습니다 solr 형식.

이 문제를 해결하는 방법에 대한 의견이나 제안이 있으십니까?

미리 감사드립니다.

sudo chmod 777 synonyms.txt 

그러나 분석기가 여전히 파일에 존재하는 동의어를 인식하지 못하는 파일에서 다음 명령을 사용하여

+0

언급 된 위치 (/usr/share/elasticsearch/config/analysis/synonyms.txt)에 파일을 만들고 다시 실행 해보십시오. –

+0

synonyms.txt 파일은 언급 된 위치에 있으며 읽을 수 있습니다. 거기에서 오류가 발생하지 않습니다. 그러나 당신의 도움에 감사드립니다 :). –

+0

좀 더 조사한 후에 ES 6.1을 실행하기 위해 도커를 사용한다는 사실에서 문제가 발생한 것으로 보입니다. 그리고 올바른 위치에 synonyms.txt 파일을 두거나 docker가 파일에 액세스 할 수 있도록 볼륨을 올바르게 매핑하는 방법을 모르겠습니다. –

답변

0

, 나는 오류 메시지를 해결했습니다. => 아이팟

아이팟, 난 포드 내가 시도하는 경우 : 는 사실 synonyms.txt 포함

curl -XGET 'localhost:9200/test_index/_analyze?pretty' -H 'Content-Type: application/json' -d' 
{ 
    "analyzer": "search_synonyms", 
    "text": "i pod" 
}' 

를 내가 얻을 :

{ 
    "tokens" : [ 
    { 
     "token" : "i pod", 
     "start_offset" : 0, 
     "end_offset" : 5, 
     "type" : "word", 
     "position" : 0 
    } 
    ] 
} 

문제가 아직 완전히 해결되지,하지만 점점 거기 :).

+0

이 답변을 드려 죄송합니다. 분석기 정의의 오타가 나를 오도합니다. 그것은해야한다 : "search_synonyms": { "유형": "정의", "토크 나이": "키워드", "필터": [ "소문자", "동의어"] } 하지만 수정 그것, 나는 나의 첫번째 포스트에서 언급 된 것과 같은 오류로 돌아 간다 ... –