[ফিল্টার করা] জন্য কোনও [প্রশ্ন] নিবন্ধিত নেই


108

আমার কাছে একটি কোয়েরি রয়েছে যা আমার ফলাফলগুলি ফিল্টার করতে হবে।

এটি আমার জিজ্ঞাসা

{
    "query": {
        "filtered": {
            "query": {
                "multi_match": {
                    "default_operator": "AND",
                    "fields": [
                        "author",
                        "title",
                        "publisher",
                        "year"
                    ],
                    "query": "George Orwell"
                }
            },
            "filter": {
                "terms": {
                    "year": [
                        1980,
                        1981
                    ]
                }
            }
        }
    }
}

আমি বলার মধ্যে একটি ত্রুটি পেয়েছি no [query] registered for [filtered]। ফিল্টার্ড ফিল্ডের জন্য আমার স্পষ্টভাবে একটি প্রশ্ন রয়েছে। আমি ইলাস্টিক অনুসন্ধান পৃষ্ঠায় ফিল্টার করা ক্যোয়ারী ডকুমেন্টেশনে প্রদত্ত ফর্ম্যাটটি অনুসরণ করছি। https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html

উত্তর:


185

filteredক্যোয়ারী অবচিত এবং ইএস 5.0 মধ্যে সরানো হয়েছে। bool/must/filterপরিবর্তে আপনার এখন ক্যোয়ারীটি ব্যবহার করা উচিত ।

{
    "query": {
        "bool": {
            "must": {
                "multi_match": {
                    "operator": "and",
                    "fields": [
                        "author",
                        "title",
                        "publisher",
                        "year"
                    ],
                    "query": "George Orwell"
                }
            },
            "filter": {
                "terms": {
                    "year": [
                        1980,
                        1981
                    ]
                }
            }
        }
    }
}

এখানে দুটি প্রশ্নের মধ্যে পার্থক্য রয়েছে:

3,4c3,4
<         "bool": {
<             "must": {
---
>         "filtered": {
>             "query": {
6c6
<                     "operator": "and",
---
>                     "default_operator": "AND",

পিএস: আপনি যে রেফারেন্স পৃষ্ঠাটি দেখছেন সেটি পরিশিষ্টের "মুছে ফেলা পৃষ্ঠাগুলি" এ অবস্থিত, সুতরাং এটি আর মূল ডকুমেন্টেশনের অংশ নয়।


4
৫.৫ ব্যবহার করার সময় মনে হয় ডিফল্ট_অপরিচিতরটি মাল্টি_ম্যাচ ক্যোয়ারী থেকে ভালকেও সরিয়ে দেওয়া হয়েছে সুতরাং এটি উত্তরটি আপডেট করার মতো হতে পারে কারণ এটি আমাকে ভুল রাস্তায় ধরে নিয়েছিল উপরের কাজটি ধরে চলেছে আমি ক্যোয়ারীটি সংশোধন করে আমার ক্ষেত্রগুলি মেলে তারপরে এটি উপলব্ধি করতে পারি কাজ হয়নি! এটি আমার পক্ষে একটি সহজ সমাধান ছিল যদিও বু কেবলমাত্র ডিফল্ট অপারেটর অপসারণ করছে তবে ভবিষ্যতের পাঠকদের জন্য এটি সম্পাদনের পক্ষে মূল্যবান হতে পারে, ত্রুটিটি হ'ল: [মাল্টি_ম্যাচ] ক্যোয়ারী [ডিফল্ট_অপরিযন্ত্রক] সমর্থন করে না
বার্দি

3
@ বার্ডি আসলে প্যারামিটারটির নাম দেওয়া হয়েছে operatorএবং নেই default_operator, আমি আমার উত্তরটি সংশোধন করেছি, এ জন্য দুঃখিত।
Val,

ভাল - আপনি যদি একটি মিনিট পান তবে দয়া করে লগস্ট্যাশ ইস্যুতে আমাকে সাহায্য করুন, আমি 48 ঘন্টা হা হা ধরে টেবিলের বাইরে মাথা ঠেকিয়েছি এবং আমি জানি আপনি ক্ষেতের এমন একজন বিশেষজ্ঞ যা দিনটিকে বাঁচাতে সহায়তা করতে পারে, ধন্যবাদ আমি পারলে চিরকালে debtণে থাকতাম !! stackoverflow.com/questions/45577572/…
বার্ডি

ধন্যবাদ, এটি ES5.1 উদাহরণটি 7.1
jhob101
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.