ইলাস্টিক অনুসন্ধান: কিভাবে ইনডেক্সড ডেটা দেখতে হবে


102

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

ম্যাপিং চেক করা Tire.index('models').mappingসাহায্য করে না, ক্ষেত্রটি তালিকাভুক্ত করা হয়েছে।

উত্তর:


170

সম্ভবত আপনার ইলাস্টিক অনুসন্ধান ক্লাস্টারটি অন্বেষণ করার সবচেয়ে সহজ উপায় হ'ল স্থিতিস্থাপক -মাথা ব্যবহার করুন ।

আপনি এটি করে এটি ইনস্টল করতে পারেন:

cd elasticsearch/
./bin/plugin -install mobz/elasticsearch-head

তারপরে (ধরে নেওয়া যাক ইতিমধ্যে আপনার স্থানীয় মেশিনে ইলাস্টিক অনুসন্ধান চলছে), এতে একটি ব্রাউজার উইন্ডো খুলুন:

http://localhost:9200/_plugin/head/

বিকল্পভাবে, আপনি কেবল curlকমান্ড লাইন থেকে ব্যবহার করতে পারেন , যেমন:

একটি সূচকের জন্য ম্যাপিং পরীক্ষা করুন:

curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1' 

কিছু নমুনা ডক্স পান:

curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1' 

কোনও নির্দিষ্ট ক্ষেত্রে সঞ্চিত প্রকৃত পদগুলি দেখুন (যেমন সেই ক্ষেত্রটি কীভাবে বিশ্লেষণ করা হয়েছে):

curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1'  -d '
 {
    "facets" : {
       "my_terms" : {
          "terms" : {
             "size" : 50,
             "field" : "foo"
          }
       }
    }
 }

এখানে আরও উপলভ্য: http://www.elasticsearch.org/guide

আপডেট: মার্ভেল মধ্যে সেন্স প্লাগইন

curlইলাস্টিকসার্কের জন্য স্টাইল কমান্ডগুলি লেখার সহজতম উপায় হ'ল মার্ভেলের সেন্স প্লাগইন

এটি উত্স হাইলাইটিং, চমত্কার ইনডেন্টিং এবং স্বয়ংক্রিয়রূপে আসে।

দ্রষ্টব্য: সেনস মূলত একটি স্ট্যান্ডোলোম ক্রোম প্লাগইন ছিল তবে এখন মার্ভেল প্রকল্পের অংশ


1
রবিনের মতো ক্ষেত্রে, আমি মনে করি কেবল কার্লের সাহায্যে ডেটা পরীক্ষা করা যথেষ্ট ass curl localhost:9200/my_index/_search?q=*&prettyঅনুমান করে যে সূচীতে ডক্সের একটি সীমাবদ্ধ সেট রয়েছে।
কর্মী

2
সেন্স প্লাগইন সুপারিশ করার জন্য ধন্যবাদ। এটা দেখতে অসাধারণ.
ভেঙ্কটেশ নান্নান

REST এপিআই ব্যবহারের জন্য ক্রোমের জন্য সেন্স প্লাগইন দুর্দান্ত। এবং _হেড চেক করার উদ্দেশ্যে দুর্দান্ত!
হ্যাভায়ার


ধন্যবাদ এটি সত্যিই দরকারী ছিল। বিটিডব্লিউ সিনট্যাক্সটি ./bin/plugin ইনস্টল করা mobz / elasticsearch-head। অর্থাত্ ইনস্টলের সামনে আপনার হাইফেনের দরকার নেই।
পল

40

আপনার ইনডেক্সড ডেটা দেখতে একেবারে সহজ উপায় হ'ল এটি আপনার ব্রাউজারে দেখা। কোনও ডাউনলোড বা ইনস্টলেশন প্রয়োজন।

আমি আপনার স্থিতিস্থাপক হোস্টটি ধরে নিচ্ছি http://127.0.0.1:9200

ধাপ 1

http://127.0.0.1:9200/_cat/indices?vআপনার সূচকগুলি তালিকা করতে নেভিগেট করুন । আপনি এরকম কিছু দেখতে পাবেন:

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

ধাপ ২

পছন্দসই সূচকটি অ্যাক্সেস করার চেষ্টা করুন: http://127.0.0.1:9200/products_development_20160517164519304

আউটপুটটি এরকম কিছু দেখবে:

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

লক্ষ্য করুন aliases, যার অর্থ আমরা পাশাপাশি সূচকটি অ্যাক্সেস করতে পারি: http://127.0.0.1:9200/products_development

ধাপ 3

http://127.0.0.1:9200/products_development/_search?prettyআপনার ডেটা দেখতে নেভিগেট করুন:

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


3
আপনাকে ধন্যবাদ জান, আমি যা খুঁজছিলাম ঠিক তেমনই।
ZedTuX

আমার কেবল একটি প্রশ্ন আছে, http://127.0.0.1:9200/products_development/_search?pretty=1কেবল নমুনা ডেটা দেখায়? এটি সমস্ত ডেটা দেখাচ্ছে বলে মনে হচ্ছে না
svelandiag

1
ডক্স এখানে (জন্য বর্ণন প্রথম 10 নথি যে অনুসন্ধানের ফলাফলে ডিফল্ট স্থিতি hits.hits)
জানুয়ারী Klimo

8
এটি ইনডেক্সড ডেটা মোটেই দেখায় না। এটি কেবলমাত্র আপনার উত্সের ডেটা দেখায় - আপনি একই জিনিসটি রেখেছিলেন OP ওপিএস প্রশ্নের উত্তর দেয় না।
হ্যাকেল

1
"সুন্দর যথেষ্ট," = 1 "যুক্ত করার দরকার নেই
শাই অ্যালন


5

সমষ্টি সমাধান

ডেটা দলবদ্ধ করে সমস্যা সমাধান করা - এটি পরিচালনায় DrTech এর উত্তরগুলির দিকগুলি ব্যবহার করেছে তবে, ইলাস্টিকসার্ক ১.০ রেফারেন্স অনুসারে প্রত্যাখ্যান করা হবে।

Warning

Facets are deprecated and will be removed in a future release. You are encouraged to
migrate to aggregations instead.

দিকগুলি সমষ্টি দ্বারা প্রতিস্থাপন করা হয় - ইলাস্টিকসার্ক গাইডে অ্যাক্সেসযোগ্য পদ্ধতিতে পরিচয় করানো হয় - যা উদাহরণকে অর্থে বোঝায়।

সংক্ষিপ্ত সমাধান

সমাধানের aggsপরিবর্তে সমষ্টিগুলির প্রয়োজন ব্যতীত facetsএবং 0 এর গণনা সহ যা সর্বোচ্চ পূর্ণসংখ্যার সীমা নির্ধারণ করে - একই কোডটির জন্য মার্ভেল প্লাগইন প্রয়োজন

# Basic aggregation
GET /houses/occupier/_search?search_type=count
{
    "aggs" : {
        "indexed_occupier_names" : {    <= Whatever you want this to be
            "terms" : {
              "field" : "first_name",    <= Name of the field you want to aggregate
              "size" : 0
            }
        }
    }
}

সম্পূর্ণ সমাধান

এটি পরীক্ষা করার জন্য এখানে সেন্স কোডটি রয়েছে - দখলকারী প্রকার সহ একটি বাড়ি সূচকের উদাহরণ এবং প্রথম ক্ষেত্রের নাম:

DELETE /houses

# Index example docs
POST /houses/occupier/_bulk
{ "index": {}}
{ "first_name": "john" }
{ "index": {}}
{ "first_name": "john" }
{ "index": {}}
{ "first_name": "mark" }


# Basic aggregation
GET /houses/occupier/_search?search_type=count
{
    "aggs" : {
        "indexed_occupier_names" : {
            "terms" : {
              "field" : "first_name",
              "size" : 0
            }
        }
    }
}

প্রতিক্রিয়া

সম্পর্কিত সম্মিলন কোড দেখাচ্ছে প্রতিক্রিয়া Resp সূচকে দুটি কী সহ জন এবং মার্ক।

    ....
    "aggregations": {
      "indexed_occupier_names": {
         "buckets": [
            {
               "key": "john",     
               "doc_count": 2     <= 2 documents matching
            },                        
            {
               "key": "mark",
               "doc_count": 1     <= 1 document matching
            }
         ]
      }
   }
   ....

4

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

নিশ্চিত নয় যে এটি ভারী ব্যবহারকারীদের জন্য সেরা হাতিয়ার। তবুও, যেগুলি এন্ট্রিগুলি দেখার জন্য হুড়োহুড়ি করছে তার পক্ষে এটি বাস্তবিকই বাস্তব।


1

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

https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig


1

@ জনকলিও উদাহরণ অনুসরণ করে, টার্মিনালে আপনাকে যা করতে হবে তা হ'ল:

সমস্ত সূচি দেখতে: $ curl -XGET 'http://127.0.0.1:9200/_cat/indices?v'

সূচকের বিষয়বস্তু দেখতে products_development_20160517164519304: $ curl -XGET 'http://127.0.0.1:9200/products_development_20160517164519304/_search?pretty=1'


1

কিবানাও ভাল সমাধান। এটি ইলাস্টিকের জন্য ডেটা ভিজ্যুয়ালাইজেশন প্ল্যাটফর্ম। যদি ইনস্টল করা থাকে তবে এটি 5601 পোর্টে ডিফল্টরূপে চলবে।

এটি সরবরাহ করে প্রচুর জিনিসগুলির মধ্যে। এটিতে "দেব সরঞ্জামগুলি" রয়েছে যেখানে আমরা আপনার ডিবাগিংটি করতে পারি।

উদাহরণস্বরূপ আপনি কমান্ডটি ব্যবহার করে আপনার উপলভ্য সূচীগুলি এখানে পরীক্ষা করতে পারেন

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