2017-12-27 12 views
0

を読みながら、私はelasticsearch 6.1を使用していると私はこのdoc以下の私の設定に基本的な同義語フィルタを追加しようとしています:ここでhttps://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.htmlelasticsearch 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" 
       } 
      } 
     } 
    } 
} 
}' 

おそらく、柱のようになります。私は問題は「...読んsynonyms_path_path」から来ていると信じてい

{ 
    "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 
} 

:そして、私は、次のエラーメッセージが表示されますst "...読み込みsynonyms_path:"

しかし、私はドキュメントに記載されているすべての機能を尊重していると思います。また

、私はちょうど置くしようとした場合:

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

それはちょうど、ファイルを読み込まないため、DOCのように...

マイsynonyms.txtがまったく同じファイルでありますsolrフォーマット。

これを修正する方法に関するご意見やご提案はありますか?

ありがとうございます。事前にお時間をいただきありがとうございます。ファイルに次のコマンドを使用することにより

+0

上記の場所にファイルを作成して(/usr/share/elasticsearch/config/analysis/synonyms.txt)、もう一度実行してください。 –

+0

ファイルsynonyms.txtが存在し、前述の場所で読み取り可能です。エラーはそこから来ていません。しかし、助けてくれてありがとう。 –

+0

もう少し調査したところ、問題はES 6.1を実行するためにドッカーを使用していることに起因すると思われます。 synonyms.txtファイルを適切な場所に置くか、ドッカーがファイルにアクセスできるようにボリュームを適切にマップする方法はわかりません。 –

答えて

0

は、私は、エラーメッセージ固定:

sudo chmod 777 synonyms.txt 

をしかしアナライザは、まだファイルに存在同義語を認識しません。 => iPodの

iPodは、私はポッド、私がしようとした場合:: は確か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":{ "タイプ": "カスタム"、 "トークナイザ": "キーワード"、 "フィルタ":[ "小文字"、 "同義語"] } しかし、私は修正しますそれ、私は私の最初の投稿に記載されているのと同じエラーに戻ります... –