2016-04-07 13 views
0

elasticsearch内の単一のインデックスに対して複数のsynonym_pathを達成しようとしています。弾性検索で単一インデックス用の複数のsynonym_pathを実装する

"settings": { 
"index": { 
    "analysis": { 
    "analyzer": { 
     "synonym": { 
     "tokenizer": "whitespace", 
     "filter": ["synonym"] 
     } 
    }, 
    "filter": { 
     "bool": { 
      "should": [{ 
      "synonym": { 
       "type": "synonym", 
       "synonyms_path": "synonyms.txt", 
       "ignore_case": true 
      }}, 
      { 
      "synonym": { 
       "type": "synonym", 
       "synonyms_path": "synonyms2.txt", 
       "ignore_case": true 
      }}] 
     } 
    } 
    } 
} 
}, 
    "mappings": { 
    "animals": { 
     "properties": { 
     "name": { 
      "type": "String", 
      "analyzer": "synonym" 
     } 
     } 
    } 
    } 

IはChromeでJSONセンスを使用して上記のコードを試みたが、それはTokenFilter [bool] must have a type associated with itエラーが発生しました。

これを実装する他の方法はありますか?

答えて

1

analysisセクションのfilterセクションには、Query DSLではなく、token filterの定義が含まれています。あなたのケースでは

、あなたが次の設定で再作成索引を行う必要があります。

{ 
    "settings": { 
    "index": { 
     "analysis": { 
     "analyzer": { 
      "synonyms": { 
      "tokenizer": "whitespace", 
      "filter": [ 
       "synonym1", 
       "synonym2" 
      ] 
      } 
     }, 
     "filter": { 
      "synonym1": { 
       "type": "synonym", 
       "synonyms_path": "synonyms.txt", 
       "ignore_case": true 
      }, 
      "synonym2": { 
       "type": "synonym", 
       "synonyms_path": "synonyms2.txt", 
       "ignore_case": true 
      } 
     } 
     } 
    } 
    }, 
    "mappings": { 
    "animals": { 
     "properties": { 
     "name": { 
      "type": "string", 
      "analyzer": "synonyms" 
     } 
     } 
    } 
    } 
} 
+0

'TokenFilterがあります[0]スローit'エラーに関連付けられた型を持っている必要があります。 これはどういう意味ですか? :) – svynsaenz

+0

私の悪い、小さなタイプミス、申し訳ありません。先に進み、もう一度やり直してください – Val

+0

これまでの運は何ですか? – Val

関連する問題