ইলাস্টিক অনুসন্ধানে বাছাই করতে ক্ষেত্রের জন্য কোনও ম্যাপিং পাওয়া যায় নি


117

SearchParseExceptionবাছাইয়ের মানদণ্ডে ক্ষেত্র নেই এমন কিছু নথি পাওয়া যায় তবে কোয়েরিকে পার্স করার সময় স্থিতিস্থাপক অনুসন্ধান কিছুক্ষণ ছুড়ে দেয় ।

অনুসন্ধান পার্সি এক্সসেপশন: পার্স ব্যর্থতা [সাজানোর জন্য [দাম] এর জন্য কোনও ম্যাপিং পাওয়া যায়নি]

কেউ কেউ priceক্ষেত্রটি অনুপস্থিত থাকলেও কীভাবে আমি এই নথিগুলি সফলভাবে অনুসন্ধান করতে পারি ?


1
আপনার প্রশ্ন / উত্তর আমার সমস্যার সমাধান করেছে - আপনাকে ধন্যবাদ। আমি এটিকে কিছুটা সাধারণ করার জন্য সম্পাদনা করেছি, যদি তা আপনার উপযুক্ত না হয় তবে নির্দ্বিধায় রোলব্যাক করুন।
পল বেলোরা 20

উত্তর:


116

আরও খনন করার পরে, আমি নীচের মত সমাধানটি পেয়েছি। ignore_unmappedসুস্পষ্টভাবে trueসাজানোর ধারাটিতে সেট করা উচিত ।

"sort" : [
       { "rating": {"order" : "desc" , "ignore_unmapped" : true} },
       { "price": {"order" : "asc" , "missing" : "_last" , "ignore_unmapped" : true} }
]

আরও তথ্যের জন্য এর জন্য ইলাস্টিকের অনুসন্ধানের রেফারেন্সগুলি দেখুন:


হাই, আমার একই সমস্যা আছে এবং আমি বুঝতে পারি না এটি কীভাবে কাজ করে ... অনুপস্থিত এবং উপেক্ষা করা_বিযুক্ত বৈশিষ্ট্যগুলি একসাথে কাজ করা উচিত? উদাহরণস্বরূপ, যদি আমি "_last" এ অনুপস্থিত সেট করে এবং "মিথ্যা" এ উপেক্ষা করে_মেনাপে ফেলেছি, আমার এখনও সমস্যা আছে তবে আমি চাইছি যে ডকুমেন্টগুলি এট্রিবিউট না থাকলেও সব ক্ষেত্রেই ফলাফলের মধ্যে আসে।
সি

আমার এই সমস্যা আছে এবং যদি আপনার _ টাইপ ফাঁকা থাকে (অর্থাত্ কোনও দস্তাবেজ সূচিবদ্ধ না করে) তবে "উপেক্ষা_মেন্যাপড" কাজ করে না।
রিনালডলকম্যান

7
নতুন কৌশল মত দেখায় ব্যবহার করা unmapped_type
lukmdo

2
আমার প্রশ্নগুলি কোনও লাইব্রেরি ইত্যাদি আপডেট না করে আজ অবধি সর্বদা কাজ করে তবে আজ আমি এই একই ত্রুটি পেয়েছি। আমি এখন যুক্ত করেছি "ignore_unmapped" : trueএবং এটি আবার কাজ শুরু করেছে তবে আশ্চর্যের বিষয় হ'ল, ঘটনার পিছনে কী ঘটেছে! কে জানে! যাইহোক, এখন এটি কাজ করে। +1
বেন্টকোডার

1
কেউ "অনুপস্থিত" এবং "আনম্যাপড" এর মধ্যে পার্থক্যটি পরিষ্কার করতে পারেন? একটি নির্দিষ্ট ক্ষেত্রের জন্য, যদি কিছু নথি থাকে তবে অন্যেরা না থাকে, যেমন ক্ষেত্রটিকে "অনুপস্থিত" বা "আনম্যাপড" হিসাবে বিবেচনা করা হয়? "অনুপস্থিত" অর্থ কি ক্ষেত্রটি নথিতে রয়েছে তবে সংশ্লিষ্ট মানটি শূন্য?
Sher10ck

43

তাদের উভয়ের উদাহরণ খুঁজছেন ignore_unmappedএবং unmapped_typeদয়া করে আমার প্রতিক্রিয়াটি এখানে দেখুন

নোট করুন যে "অগ্রাহ্য_মেনাপড" এখন "আনম্যাপড_ টাইপ" এর পক্ষে অবমুক্ত করা হয়েছে। এটি # 7039 এর অংশ হিসাবে করা হয়েছিল

ডকুমেন্টেশন থেকে: ১.৪.০ এর আগে এগেনাল_ইনম্যাপড বুলিয়ান প্যারামিটার ছিল, যা নির্গত করার জন্য বাছাই করা মানগুলি নির্ধারণ করার জন্য যথেষ্ট তথ্য ছিল না এবং ক্রস-ইনডেক্স অনুসন্ধানের জন্য কাজ করে নি। এটি এখনও সমর্থিত তবে ব্যবহারকারীরা পরিবর্তে নতুন আনম্যাপড_ টাইপে মাইগ্রেট করতে উত্সাহিত।

ডিফল্টরূপে, যদি কোনও ক্ষেত্রের সাথে ম্যাপিং যুক্ত না হয় তবে অনুসন্ধানের অনুরোধটি ব্যর্থ হবে। আনম্যাপড_ টাইপ বিকল্পটি এমন ক্ষেত্রগুলিকে অগ্রাহ্য করতে দেয় যা ম্যাপিং নেই এবং তাদের অনুসারে বাছাই করে না। এই প্যারামিটারটির মানটি নির্ধারণ করতে ব্যবহৃত হয় কী নির্গত মানগুলি নির্ধারণ করতে। এটি কীভাবে ব্যবহার করা যায় তার একটি উদাহরণ এখানে দেওয়া হয়েছে:

{
    "sort" : [
        { "price" : {"unmapped_type" : "long"} },
    ],
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

অনুসন্ধান করা সূচকগুলির মধ্যে যদি কোনওটির দামের জন্য ম্যাপিং না থাকে তবে ইলেস্টিকসার্চ এটিকে হ্যান্ডেল করবে যেন লম্বা টাইপের ম্যাপিং রয়েছে, এই সূচীতে সমস্ত নথির এই ক্ষেত্রটির কোনও মূল্য নেই।


3

দৃশ্যত স্থিতিস্থাপক অনুসন্ধান নাল মান অনুসারে বাছাই করবে না। আমি ধরে নিচ্ছিলাম এটি এটিকে শূন্য বা শেষ হিসাবে (এসকিউএল অর্ডার সহ) হিসাবে নਾਲ হিসাবে গণ্য করবে তবে আমি বিশ্বাস করি এটিও এই ত্রুটিটিকে ট্রিগার করে।

সুতরাং আপনি যদি এই ত্রুটিটি দেখে থাকেন তবে ইলাস্টিক অনুসন্ধানে প্রেরণ করার সময় আপনার অবশ্যই বাছাই করতে হবে যে বৈশিষ্ট্যটির ডিফল্ট মান রয়েছে ensure

রেল + ইলাস্টিক অনুসন্ধান + টায়ারের সাথে আমার এই ত্রুটি ছিল কারণ শৃঙ্খলাবদ্ধ কলামটির ডিফল্ট মান ছিল না, তাই ES এ নাল হিসাবে প্রেরণ করা হচ্ছিল।

এই সমস্যাটি নির্দেশ করে যে নাল মানগুলি পরিচালনা করছে, তবে এটি আমার অভিজ্ঞতা ছিল না। এটি যাইহোক চেষ্টা করার মতো কিছু।


2

আমি একই সমস্যাটি পেয়েছি (বাছাই; কিছু ত্রুটি হবে তবে কিছু ফলাফল) তবে আমার ক্ষেত্রে আমার অনুসন্ধানটি মূলত জারি করা হয়েছিল (কোনও সূচক নির্দিষ্ট করা হয়নি), এবং যে ত্রুটিগুলি আমি পাচ্ছিলাম কারণ অনুসন্ধান / আদেশও ছিল একটি কিবানা সূচক খুঁজছেন।

বোকা ত্রুটি, তবে সম্ভবত এটি এখানে শেষ হওয়া অন্য কাউকে সহায়তা করবে।


আমার একই সমস্যা আছে .. তবে আমি যখন বিনা ম্যাপকে উপেক্ষা করে নির্দিষ্ট করে দেই তখন মূলগুলি অনুসন্ধান করার সময় আমি কোনও প্রকার বাছাই করতে পারি না ... এটি যদি আমাকে সূচকটি সংজ্ঞায়িত করতে হয় তবে আমার অনুসন্ধান করার ক্ষমতা সীমাবদ্ধ করে ... আমি কেবল সমস্ত চাইব মিল থাকলে ফলাফলগুলি ক্ষেত্রের অনুসারে বাছাই করতে যদি এটি বিদ্যমান থাকে এবং তাদের ডিফল্ট ব্যবহার করুন না যা তাদের জন্য সম্পাদনা করুন: সম্পাদনা:
এমগোয়েটজেকে

2

স্থিতিস্থাপক অনুসন্ধান 6.4

কেবল সূচকটি নির্দিষ্ট করুন এবং এটি কিবানাতে

আগে

GET /_search
{
 
  "query": {
    "exists": {
      "field": "document_id"
    }
  },
  "sort": [
    {
      "document_id": { "order": "asc"  },
      "created_at":  { "order": "desc" }
    }
  ]
}

পরে

GET /document-index/contact/_search  (here)
{

  "query": {
    "exists": {
      "field": "document_id"
    }
  },
  "sort": [
    {
      "document_id": { "order": "asc"  },
      "created_at":  { "order": "desc" }
    }
  ]
}


0

আপনি স্ক্রিপ্টও ব্যবহার করতে পারেন যা আপনাকে কিছুটা নমনীয়তা দেয়:

"sort" : {
    "_script" : {
        "type" : "number",
        "script" : {
            "lang": "painless",
            "source": "return !doc['price'].empty ? doc['price'].value : 0"
        },
        "order" : "desc"
    }
}

0

আমরা যখন কোডের নীচে ব্যবহার করি, যেখানে যুক্ত_ তারিখ হয়, তখন কী ঘটে !! বৈশিষ্ট্যযুক্ত পাঠ্য বিশ্লেষণ করা হয় যার অর্থ এটি সংরক্ষণের সময় পৃথক শব্দে বিভক্ত হয় এবং ক্ষেত্রের এক বা একাধিক শব্দের উপর ফ্রি-পাঠ্য অনুসন্ধানের অনুমতি দেয়

সুতরাং ক্ষেত্রগুলির সাথে "পাঠ্য" এবং "কীওয়ার্ড" যুক্ত রয়েছে, সুতরাং যদি আমাদের ক্যোয়ারিতে সমষ্টি ব্যবহার করতে হয় তবে সাধারণ কীওয়ার্ডের ক্ষেত্রে আমাদের ক্ষেত্রের মান প্রয়োজন।

BEFORE

"_source":{....}
"query" : {...}
"sort": [
{
  "added_on": {
    "order": "desc"
  }
}
]

AFTER
"_source":{....}
"query" : {...}
"sort": [
{
  "added_on.keyword": {
    "order": "desc"
  }
}
]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.