ユースケース:特定のIDを持っていないすべてのドキュメントを削除します。boolクエリでは必須ではありませんか?
マッピング:
"bookList": {
"properties": {
"bookname": {
"type": "string"
},
"bookId": {
"type": "long"
},
}
内容は、各文書で次のようになります。いくつかは、内側のリストは、それがDOC1
も聞かせてあります
"bookList": [
{
"bookname": "HITLER",
"bookId": 3163
},
{
"bookname": "MARTIAN",
"bookId": 1210
}
]
そして、このようないくつかの1つのリストだけが、それはDOC2
とします
"bookList": [
{
"bookname": "WASHINGTON",
"bookId": 3163
}
]
そして別のドキュメントDOC3:
"bookList": [
{
"bookname": "SHELDON",
"bookId": 3163
},
{
"bookname": "MARVELS",
"bookId": 1219
}
]
私はブールクエリでMUST_NOTを使用してbookId : 3163
持っていないされている文書を削除するには、ES 2.4.0でdelete_by_queryプラグインを使用しています。内部リスト文書(すなわち、DOC1 & DOC3)の場合、その用語が内部リストのいずれかに存在し、その文書を削除していない場合、MUST_NOTは正確な用語を見つけるため、削除しません。
私のクエリは、このようなものです:
{
"query" : {
"bool" : {
"must_not" : {
"term" : {
"bookList.bookId" :3163
}
}
}
}
}
このクエリのみDOC2なくDOC1を削除しています。 内部リスト文書を削除するにはどうしたらいいですか?
代わりにワイルドカードクエリを使用します。 – tom
「book_Id」のワイルドカードクエリを意味していますか? book_IDのために私はユニークなidの – Seeker
を使用しなければならないので、一度に複数のユニークなbookIdsを削除したいですか? – tom