大きな添付ファイルを使用してElasticsearchにインデックス付けされているオブジェクトがありますが、これを_sourceに保存したくありません。マッピングで「excludes」を指定すると修正されましたが(SOでここに回答された別の質問のおかげで)、フィルター/アナライザーのカスタム設定を追加すると、どういうわけか除外が壊れてしまい、タイヤの問題なのか、それともタイヤの問題なのか疑問に思います。除外を別の方法で指定する必要があるだけです。
コードは次のとおりです。
settings analysis: {
filter: {
ngram_filter: {
type: "nGram",
min_gram: 2,
max_gram: 12
}
},
index_analyzer: {
index_ngram_analyzer: {
type: "custom",
tokenizer: "standard",
filter: ["lowercase", "ngram_filter"]
}
},
search_analyzer: {
search_ngram_analyzer: {
type: "custom",
tokenizer: "standard",
filter: ["standard", "lowercase", "ngram_filter"]
}
}
} do
mapping :_source => { :excludes => ['attachment'] } do
indexes :id, :type => 'integer'
[:title, :abstract].each do |attribute|
indexes attribute, type: 'string', analyzer: 'ngram_analyzer'
end
indexes :attachment, :type => 'attachment'
end
end
「:excludes」を含む「mapping」行は、「settings」ブロックを追加するまでトリックを実行していたため、それに関する何かが除外を無視する原因になりました。そこに何かアイデアはありますか?前もって感謝します!