ここに問題があります: バックエンドでは、私はmongodbとelasticsearchを使ってJavaの春のブートをしています。私はこのような構造を持つオブジェクトを渡しているクライアントアプリからelasticsearchオブジェクトのネストされた配列 - 複雑なクエリ
{ "id": 1,
"prefixes": [
{
"prefName": "RS",
"value": "c"
},
{
"prefName": "99c",
"value": "c"
},
{
"prefName": "RT",
"value": "a"
},
{
"prefName": "001b",
"value": "a"
},
{
"prefName": "DT",
"value": "m"
},
{
"prefName": "001c",
"value": "m"
},
{
"prefName": "001d",
"value": "b"
},
{
"prefName": "RN",
"value": "16"
},
{
"prefName": "001e",
"value": "16"
},
{
"prefName": "BN",
"value": "2-228-32590-2"
},
{
"prefName": "010a",
"value": "2-228-32590-2"
},
{
"prefName": "SS",
"value": "d"
},
{
"prefName": "100b",
"value": "d"
},
{
"prefName": "PY",
"value": "1975"
},
{
"prefName": "100c",
"value": "1975"
},
{
"prefName": "LA",
"value": "fre"
},
{
"prefName": "101a",
"value": "fre"
},
{
"prefName": "CO",
"value": "fra"
},
{
"prefName": "102a",
"value": "fra"
},
{
"prefName": "KW",
"value": "Ekole et psychologie individuelle comparee"
}] }
::私は私のelasticsearchでこのように構造化文書持つ ので
{
"pref1": "(prefixName - value)",
"pref2": "(prefixName - value)",
"pref3": "(prefixName - value)",
"pref4": "(prefixName - value)",
"pref5": "(prefixName - value)",
"text1": "(prefix value - value)",
"text2": "(prefix value - value)",
"text3": "(prefix value - value)",
"text4": "(prefix value - value)",
"text5": "(prefix value - value)",
"operator1": "(logical OR,AND,NOT)",
"operator2": "(logical OR,AND,NOT)",
"operator3": "(logical OR,AND,NOT)",
"operator4": "(logical OR,AND,NOT)"
}
は、私が選んだのために5つのオプションのプレフィックスを持っているが(PREF1、PREF2 ...例えば、RS、RT ..)、 テキストフィールドはその値であり、フレーズプレフィックスと一致する必要があります。問題は、これらのクエリをリンクする4つの論理演算子があることです。誰かが私にこれらのニーズを満たす適切なelasticsearchクエリを構築する方法を指示できますか?ここで
よく私はこれらの論理演算子と接頭辞値との結合の仕方はまだ分かりませんでした。あなたがこれまでに疲れた例をいくつか見せることができますか? – user3775217
検索フォームと説明をimgで投稿しました。 – deadf00d