この例外が発生する理由は、一般的なcreate indexエンドポイントを呼び出してインデックスの設定を更新できないためです。アナライザーを更新するには、 '_settings'エンドポイントを呼び出す必要があります。
私はこれを行う方法のあなたのための小さな例を作りました:
PUT test
{
"settings": {
"analysis": {
"analyzer": {
"new_analyzer": {
"tokenizer": "standard"
}
}
}
}
}
GET test/_analyze
{
"analyzer": "new_analyzer",
"text": "NoLowercasse"
}
POST test/_close
PUT test/_settings
{
"analysis": {
"analyzer": {
"new_analyzer": {
"tokenizer": "standard",
"filter": [
"asciifolding",
"lowercase"
]
}
}
}
}
POST test/_open
GET test/_analyze
{
"analyzer": "new_analyzer",
"text": "LowerCaseAdded"
}
は応答:
{
"tokens": [
{
"token": "lowercaseadded",
"start_offset": 0,
"end_offset": 14,
"type": "<ALPHANUM>",
"position": 0
}
]
}
あなたは第2の分析の後、小文字のフィルタが適用されていることがわかります。インデックスを閉じる必要がある理由は、アナライザーを再構築する必要があるためです。以前に追加された文書はこのアナライザーでは索引付けされていませんでしたので、新しいアナライザーは期待通りに機能しません。 これを修正するには、インデックスを再構築する必要があります(Reindex-APIなど)
編集:これはDrupal-Elasticのソリューションではないので、私はたぶん応答が少し速かったかもしれませんが、正しい方向に向けるかもしれません。正直言って私はDrupalとの組み合わせでESを実行することに慣れていません。
本当にありがとうございました。確かに正しい方向ですが、現時点ではDrupalには適用できません。 –
私はチェックし続けます –
私は新しい質問をしました。続きの... –