ইলাস্টিক অনুসন্ধান থেকে ডেটা সরানো হচ্ছে


361

আমি ইলাস্টিক অনুসন্ধানে নতুন । আমি কীভাবে ইলাস্টিক অনুসন্ধান থেকে ডেটা সরিয়ে নেওয়ার চেষ্টা করার চেষ্টা করছি। আমি আমার সূচকগুলি মুছে ফেলেছি। যাইহোক, এটি আসলে ডেটা নিজেই মুছে ফেলবে বলে মনে হয় না। অন্যান্য জিনিস আমি দেখেছি মুছুন দ্বারা ক্যোয়ারী বৈশিষ্ট্যটি নির্দেশ করে। তবে কী জিজ্ঞাসা করবেন তা আমি এখনও নিশ্চিত নই। আমি আমার সূচি জানি। মূলত, আমি কীভাবে করব তা নির্ধারণ করতে চাই

DELETE FROM [Index]

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

   http://localhost:9200/[indexName]

যাইহোক, এটি আসলে তাদের নিজেরাই ডেটা (ওরফে ডকস) মুছে ফেলবে বলে মনে হয় না।


আমি এটি পোস্টম্যানের সাথে যাচাই করেছিলাম এবং "acknowledged" স্বীকৃত "হিসাবে পুনঃস্থাপন করেছি: সত্য}" যদি আপনি এই স্বীকৃত প্রতিক্রিয়া দেখেন তবে চিন্তা করবেন না। সূচকটি স্থিতিস্থাপক থেকে সরানো হয়েছে।
বিজয়েক

উত্তর:


428

cURLইলাস্টিকসার্কের জন্য ওপেন সোর্স উত্সাহীরা যে অনেকগুলি সরঞ্জাম তৈরি করেছেন তার মধ্যে একটির ব্যবহার বা দৃশ্যত মুছতে পারেন ।

সিআরএল ব্যবহার করা

curl -XDELETE localhost:9200/index/type/documentID

যেমন

curl -XDELETE localhost:9200/shop/product/1

এরপরে আপনি এই উত্তরটি সফল কিনা তা সফলভাবে উত্তর পেয়েছে। আপনি একটি সম্পূর্ণ সূচক মুছে ফেলতে পারেন বা একটি সূচক সহ প্রকারগুলিও মুছে ফেলতে পারেন, আপনি নথির আইডিকে এভাবে রেখে কোনও প্রকার মুছতে পারেন -

curl -XDELETE localhost:9200/shop/product

আপনি যদি কোনও সূচক মুছতে চান -

curl -XDELETE localhost:9200/shop

আপনি যদি একাধিক সূচক মুছে ফেলতে চান যা নির্দিষ্ট নামকরণের কনভেনশন অনুসরণ করে (নোট করুন *, একটি ওয়াইল্ডকার্ড), -

curl -XDELETE localhost:9200/.mar* 

দৃশ্যরূপে

উপরে উল্লিখিত বিভিন্ন সরঞ্জাম রয়েছে, আমি সেগুলি এখানে তালিকাবদ্ধ করব না তবে আমি আপনাকে এমন একটি লিঙ্কে যুক্ত করব যা আপনাকে সরাসরি এখানে অবস্থিত, শুরু করতে সক্ষম করে । এই সরঞ্জামটিকে কেওপিএফ বলা হয়, আপনার হোস্টের সাথে সংযোগ রাখতে দয়া করে উপরের বাম দিকে কোণায় থাকা লোগোতে ক্লিক করুন এবং আপনার ক্লাস্টারের URL লিখুন।

একবার সংযুক্ত হয়ে গেলে আপনি আপনার পুরো ক্লাস্টার পরিচালনা করতে, মুছতে, অনুকূল করতে এবং আপনার ক্লাস্টার টিউন করতে সক্ষম হবেন।


আমি জানি যে কোন আইডিটি 3 টি ডক মুছে ফেলতে পারে?
হীরা ঠাকুর

আমার বর্তমান জ্ঞানটিতে জয়েশ জয়েন, না। আপনি 3 টি পরিবর্তিত কার্ল -XDELETE কমান্ডগুলিকে ব্যাশ স্ক্রিপ্টে রাখতে পারেন এবং একের পর এক চালানো বা চালানো 3।
অপস্টার ইলাস্টিকসার্ক - নাথান

@ জয়েশজাইন তাই কার্ল -XDELETE লোকালহোস্ট: 9200 / সূচক / প্রকার / ডকিড 1 // কার্ল -XDELETE লোকালহোস্ট: 9200 / সূচক / প্রকার / ডকিড 2 // কার্ল -XDELETE লোকালহোস্ট: 9200 / সূচক / প্রকার / ডক্লিড 3
অপস্টার ইলাস্টিকসার্ক - নাথন

আমি এটি একইভাবে করেছি ut তবে আমি কেবল ভাবছিলাম যে যদি একাধিক ডকস মোছার চতুর উপায় আছে। আমি যদি ক্ষেত্রটি জানতাম তবে আমি শব্দটি ব্যবহার করতে পারি। তবে এই দৃশ্যে, আমার কেবল তাদের আইডি দিয়ে ডক্স মুছতে হবে। যাইহোক যাইহোক
হীরা ঠাকুর

2
আমি কীভাবে কোনও অবৈধ চরিত্রের সাথে একটি সূচক মুছতে পারি, যেমন, লগস্ট্যাশ-ইউ -% u গ্রাহক} -2016.11.22। আমি সমস্ত সূচকগুলি লগস্ট্যাশ-ইইউ -% {গ্রাহক} - * বা লগস্ট্যাশ-ইইউ -% * মুছতে চাই
ক্রিস এফ

459

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

curl -X DELETE 'http://localhost:9200/_all'

শক্তির উৎস:

Invoke-WebRequest -method DELETE http://localhost:9200/_all

20
এটি ডেভলপমেন্ট এবং স্ক্র্যাচ (খালি) ডাটাবেসে পুনরায় সেট করার প্রয়োজনের জন্য খুব দরকারী। ধন্যবাদ !!
আর্টস্থান

3
আপনার বাশ_প্রফাইলে এই কমান্ডের জন্য একটি উপনাম তৈরি করুন এবং এটি বিকাশের কাজে আসবে।
ব্যবহারকারী 805981

2
'ওয়াইল্ডকার্ড এক্সপ্রেশন বা সমস্ত সূচকের অনুমতি নেই'
জুরাব ওয়েবে

1
দ্রষ্টব্য যে এটি আপনার এক্স-প্যাক অ্যাক্সেস শংসাপত্রগুলি সহ সমস্ত ডেটা মুছে ফেলবে।
গাজুস

2
এটি কিবানা ড্যাশবোর্ডগুলি এবং ভিজ্যুয়ালাইজেশনগুলিও মুছে ফেলছে
ন্যানো

54

ডকুমেন্টেশন (অথবা নির্দিষ্ট নির্দেশিকা ) এরশাদ করেন, যে আপনার মুছে পাশে ক্যোয়ারী ব্যবহার করতে পারেন সব সূচকের:

curl -XDELETE 'http://localhost:9200/*'

এবং একটি গুরুত্বপূর্ণ নোট আছে:

কারও কারও কাছে একটি একক কমান্ডের সাহায্যে আপনার সমস্ত ডেটা মুছে ফেলার ক্ষমতা খুব ভয়ঙ্কর সম্ভাবনা। আপনি যদি কোনও দুর্ঘটনাজনিত গণ-মোছার সম্ভাবনাটি দূর করতে চান তবে আপনি নিম্নলিখিতটি সেট করতে পারেন trueআপনার elasticsearch.yml:

action.destructive_requires_name: true


30

আপনাকে একটি DELETEঅনুরোধ পাঠাতে হবে

http://[your_host]:9200/[your_index_name_here]

আপনি একটি একক দস্তাবেজও মুছতে পারেন:

http://[your_host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]

আমি আপনাকে ইলাস্টিকহ্যামার ব্যবহার করার পরামর্শ দিচ্ছি ।

মুছে ফেলার পরে আপনি সূচীটি নিম্নলিখিত URL এর সাথে উপস্থিত থাকলে তা সন্ধান করতে পারেন: http://[your_host]:9200/_stats/

শুভকামনা!


10 দিনের চেয়ে পুরানো সূচকগুলি মুছার উপায় কী? আমি কিউরেটর ব্যবহার করতে পারি না কারণ আমার সার্ভারটি সমর্থন করে না।
বায়োলিনহ

17

সূচি মোছা ম্যাপিং মুছে ফেলা হবে এবং পাশাপাশি টাইপ করুন। আপনি নিম্নলিখিত কোয়েরি দ্বারা সমস্ত সারি মুছে ফেলতে পারেন

curl -XDELETE 'localhost:9200/twitter/tweet/_query?pretty' -d'
{
   "query": { 
      "match_all": 
   }
}'

তবে উপরের ক্যোয়ারির জন্য আপনার ইলাস্টিকসার্কের ২.০.০-বিটা ১-কে মুছুন-কে-কোয়েরি মুছে ফেলা হয়েছে মূল এপিআই থেকে মুছে ফেলা হয়েছে

Install delete-by-query plugin

sudo bin/plugin install delete-by-query

আরো বেশী

http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/


প্লাগইন ইনস্টল করার আগে এবং ইএস পুনরায় চালু করার আগে উভয়ই, আমি "ইউরি এবং পদ্ধতির জন্য কোনও হ্যান্ডলার খুঁজে পাইনি"।
ম্যাথু

এটি ইলাস্টিকসার্চ 6+ এ কাজ করে না। পরিবর্তে _ ডিলিট_বাই_উইকি ব্যবহার করুন।
শৈলেশ প্রতাপওয়ার

17
#list all index:       curl -XGET http://localhost:9200/_cat/indices?v 

এখানে চিত্র বর্ণনা লিখুন

#delete index:         curl -XDELETE 'localhost:9200/index_name'
#delete all indices:   curl -XDELETE 'localhost:9200/_all'
#delete document   :   curl -XDELETE 'localhost:9200/index_name/type_name/document_id'

কিবানা ইনস্টল করুন । কিবানার একটি স্মার্ট ডেভ সরঞ্জাম রয়েছে যা সহজেই ক্যোয়ারী তৈরি করতে সহায়তা করে।

এখানে চিত্র বর্ণনা লিখুন


1
10 দিনের চেয়ে পুরানো সূচকগুলি মুছার উপায় কী? আমি কিউরেটর ব্যবহার করতে পারি না কারণ আমার সার্ভারটি সমর্থন করে না।
বায়োলিনহ

9
curl -X DELETE 'https://localhost:9200/_all'

httpআপনি httpsযদি নিজের অ্যাপ্লিকেশনটিতে এসএসএল শংসাপত্র ব্যবহার করেন তবে তা পরিবর্তন করুন


8

আপনি পাইথনে একটি সূচকটি নিম্নরূপে মুছতে পারেন

from elasticsearch import Elasticsearch

es = Elasticsearch([{'host':'localhost', 'port':'9200'}])

es.index(index='grades',doc_type='ist_samester',id=1,body={
    "Name":"Programming Fundamentals",
    "Grade":"A"
})

es.indices.delete(index='grades')


7

ক্যোয়ারী দিয়ে ভর-মুছার জন্য আপনি ক্যোরি এপিআই দ্বারা বিশেষ মোছা ব্যবহার করতে পারেন :

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

ইতিহাসে সেই এপিআই মুছে ফেলা হয়েছিল এবং তারপরে আবার নতুন করে পরিচয় করানো হয়েছে

কে আকর্ষণীয় এটি দীর্ঘ ইতিহাস আছে।

  1. এই উত্তরের প্রথম সংস্করণে আমি স্থিতিস্থাপক সংস্করণ 1.6 এর ডকুমেন্টেশন উল্লেখ করি । এটিতে কার্যকারিতাটি অবচিত হিসাবে চিহ্নিত হয়েছে তবে ভাল কাজ করে।
  2. ইন elasticsearch সংস্করণ 2.0 এটা পৃথক প্লাগইন সরিয়ে নেওয়া হয়েছে । এমনকি এটি কেন প্লাগইন হয়ে গেছে তা ব্যাখ্যা করা হয়েছে
  3. এবং এটি আবার 5.0 সংস্করণে কোর এপিআইতে উপস্থিত হয়েছিল !

3
জিজ্ঞাসা করে মুছে ফেলা ব্যবহারে সাবধানতা অবলম্বন করুন। এটি একটি বড় কারণে হ্রাস পেয়েছে। OutOfMemoryError!
ব্যবহারকারী 3658423

অবশ্যই। এটি আপনার জন্য ঘটেছে বা আপনার যথেষ্ট স্মৃতি রয়েছে কিনা তা আপনি গুপ্তচর দেখতে পারেন।
হবিটাস


5

আমি লগস্ট্যাশ সূচক মুছতে চেয়েছিলাম এবং কার্লের মতো বিভিন্ন সরঞ্জামের বিষয়ে অনেক অনুসন্ধান করেছি। তবে শেষ পর্যন্ত সমাধানটি খুঁজে পেয়েছি। কিবানায় লগইন করুন। দেব সরঞ্জাম ট্যাবে যান DELETE /logstash-*এবং ক্যোয়ারী ক্ষেত্রটি টাইপ করুন এবং সবুজ তীর বোতামটি টিপুন। যদি আপনি "স্বীকৃত" হন: প্রতিক্রিয়াতে সত্য এটির অর্থ ডেটা সাফ করা হয়েছে।


ধন্যবাদ!!! আমি অন্যান্য অনেকগুলি বিকল্প চেষ্টা করেছিলাম this এটিই আমার পক্ষে কাজ করেছে।
এলাদিয়ানাই

5

সূচকগুলি নীচে তালিকাভুক্ত করা curl -L localhost:9200/_cat/indices

9200 ডিফল্ট পোর্ট [অন্য কোনও বন্দর ব্যবহার করে পোর্ট পরিবর্তন করুন]

আপনি সম্ভবত logstash-yyyy-mm-ddফর্ম্যাট দিয়ে শুরু সমস্ত সূচক খুঁজে পাবেন (লগস্ট্যাশ- *)

আপনি সমস্ত সূচকগুলি দেখতে এবং ব্যবহার করতে পারেন

কমান্ড অনুসরণ করে সূচকগুলি এবং ডেটা ট্রিগার মুছতে।

curl -XDELETE localhost:9200/index_name (যা উভয় ডেটা এবং সূচকগুলি সরিয়ে ফেলবে)।


4

এখানে প্রচুর ভাল উত্তর রয়েছে তবে এখানে এমন কিছু যুক্ত রয়েছে যা আমি যুক্ত করতে চাই:

  • আপনার উপর চালান তাহলে ডেস্কটপ AWS ElasticSearch সেবা , আপনি / মুছুন ইনডেক্স ড্রপ can'tসূচকগুলি মুছে ফেলার পরিবর্তে আপনাকে অবশ্যই এগুলি পুনর্নির্মাণ করতে হবে

সবেমাত্র এডাব্লুএস ইলাস্টিক অনুসন্ধানে একটি সূচক মুছে ফেলা হয়েছে, আমার ডোমেনটি ES 5.1 চলছে।
গজারসগো 6

2
এডাব্লুএস ইএস এ আপনি সূচকগুলি খুলতে / বন্ধ করতে পারবেন না - এর জন্য পুনর্নির্মাণের প্রয়োজন। আপনি তবে সূচকগুলি মুছতে পারেন। আমি কেবল কিবানা কনসোলের মাধ্যমে এটি করেছি, তবে এটি অবশ্যই কার্যকর হয়।
টম ডুফাল

4

আপনি পুরো সূচী, ডক-টাইপ বা একটি খাঁটি আইডি ডেটা মুছতে পারেন। এই তিনটি উপায়:

  1. কার্ল -XDELETE লোকালহোস্ট: 9200 / সূচক_নাম

  2. কার্ল -XDELETE লোকালহোস্ট: 9200 / সূচক_নাম / ডক-টাইপ

  3. কার্ল -XDELETE লোকালহোস্ট: 9200 / সূচক_নাম / ডক-টাইপ / ডকুমেন্টআইডি

এবং আপনি যদি সমস্ত সূচক মুছতে চান তবে ওয়াইল্ডকার্ডে যান।


হাই, আমি আশা করি অনুসন্ধানগুলি কার্যকর করার আগে আপনি আপনার স্থিতিস্থাপক অনুসন্ধান শুরু করেছেন এবং এটি ডিফল্টরূপে নিশ্চিত হয়ে নিন যে এটি সমস্ত স্থানীয় ঠিকানার সাথে আবদ্ধ। এবং লোকালহোস্টের পরিবর্তে আপনি নিজের আইপি ঠিকানাও ব্যবহার করতে পারেন। 10.80.15.45:9200 এর মতো এবং একবার আপনার ES সেটিংটি যাচাই করে আমি নেটওয়ার্ড.বাইন্ড_হোস্ট চেক করার জন্য ভাবতে পারি এবং নিশ্চিত করে তুলতে পারি যে এটি সেট না হয় অথবা 0.0.0.0 বা :: 0 অথবা আপনার নেটওয়ার্কের সঠিক আইপি ঠিকানায় সেট করা আছে।
গৌরব

3

আপনি 'ইলাস্টিকস্যাড হেড' ( ক্রোম প্লাগইন ) এ ডিলিট ক্রিয়া ব্যবহার করে সূচকটিও মুছতে পারেন । এটিকে আপনার ক্রোমে যুক্ত করুন এবং এটি আপনার হোস্টের সাথে সংযুক্ত করুন। সেখানে আপনি আপনার সমস্ত সূচক খুঁজে পাবেন এবং আপনি যে সূচকটি মুছতে চান তার নীচে অ্যাকশন বোতামে ক্লিক করুন, আপনি ড্রপ ডাউন এ একটি মোছার বিকল্প পাবেন। এটিতে ক্লিক করুন এবং পপ-আপে মুছে ফেলুন। আপনার সূচক মুছে ফেলা হবে। 'ইলাস্টিক সর্দার' এক্সটেনশন হ'ল আপনার সূচকগুলি এবং ডেটা দেখার এবং পরিচালনা করার একটি সহজ উপায়।


2

আপনি সূচি মোছার জন্য ক্রোম এক্সটেনশন ইলাস্টিক-মাথা ব্যবহার করতে পারেন


2

আপনি কিবানা কনসোল দ্বারা সূচকটি মুছতে পারেন:

কনসোল আইকন

সমস্ত সূচক পেতে:

GET /_cat/indices?v

নির্দিষ্ট সূচক মুছতে:

DELETE /INDEX_NAME_TO_DELETE

1

আপনি এক বা একাধিক সূচক মুছতে পারেন , যা সত্যিই তাদের ফাইলগুলি ডিস্ক থেকে মুছে দেয় । উদাহরণ স্বরূপ:

curl -XDELETE localhost:9200/$INDEXNAME

যেখানে $INDEXNAMEসূচকের নাম (যেমন users_v2) হতে পারে , এন সূচকগুলি কমা দ্বারা পৃথক করা হয়েছে (যেমন users_v2,users_v3)। একটি সূচক প্যাটার্ন (যেমন users_*) বা _allএটিও কাজ করে, যদি না এটি কনফিগারেশনে অবরুদ্ধ থাকে action.destructive_requires_name: true

স্বতন্ত্র নথি মুছে ফেলা সম্ভব, তবে এটি তাত্ক্ষণিকভাবে তাদের শুদ্ধ করবে না । একটি মুছুন শুধুমাত্র একটি নরম মোছা, এবং খণ্ডগুলি মার্জ করার সময় নথিগুলি সত্যিই সরানো হয় । আপনি এই উপস্থাপনায় বিভাগগুলি এবং মার্জগুলি সম্পর্কে প্রচুর বিশদ পাবেন । এটি সোলার সম্পর্কে, তবে মার্জগুলি লুসিনের থেকে, সুতরাং আপনার কাছে ইলাস্টিকসर्चে একই বিকল্প রয়েছে।

এপিআই-এ ফিরে যান, আপনি হয় আইডি দ্বারা স্বতন্ত্র নথিগুলি মুছতে পারেন (রাউটিংয়ের সাথে সূচী করলে একটি রাউটিংয়ের মান সরবরাহ করুন):

curl -XDELETE localhost:9200/users_v2/_doc/user1

বা প্রশ্নের মাধ্যমে:

curl -XPOST -H 'Content-Type: application/json' localhost:9200/users_v2/_delete_by_query -d '{
  "query": {
    "match": {
      "description_field": "bad user"
    }
  }
}'

0

বলুন যে আমাকে একটি সূচক মুছতে filebeat-7.6.2-2020.04.30-000001হবে এবং আমি এটি একটি কার্ল ডিলেট ডিলেট অপশন ( curl -X DELETE "localhost:9200/filebeat-7.6.2-2020.04.30-000001?pretty") ব্যবহার করে সম্পাদন করেছি এবং এর ফলে নীচের হিসাবে প্রমাণীকরণের সমস্যা দেখা দেয়;

{
  "error" : {
    "type" : "security_exception",
    "reason" : "missing authentication credentials for REST request [/filebeat-7.6.2-2020.04.30-000001?pretty]"
  },
  "status" : 401
}

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

curl -X DELETE -u myelasticuser:myelasticpassword "localhost:9200/filebeat-7.6.2-2020.04.30-000001?pretty"

হবে ফলাফল { "স্বীকার": সত্য}

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