您得到此異常的原因是因爲無法通過調用通用創建索引端點來更新索引的設置。爲了更新分析儀,您必須調用'_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
}
]
}
你可以看到,第二次分析後,正在應用的小寫過濾器。你必須關閉索引的原因是因爲它需要重建分析器。您會注意到新分析儀不能按預期工作,因爲之前添加的文檔沒有使用此分析儀進行索引,而是沒有使用asciifolding和小寫字母的索引。 爲了解決這個問題,你將不得不重建你的索引(例如Reindex-API)
希望這有助於!
編輯:我可能是在響應有點太快了,因爲這不是一個Drupal彈性的解決方案,但它可能爲你指明正確的方向。說實話,我不熟悉與Drupal結合運行ES。
非常感謝拜倫:)確實是正確的方向,但我沒有設法將它應用於Drupal,此刻... –
我會繼續檢查 –
我問了一個新問題,我通知你的延續...... –