ইলাস্টিকসন্ধান, স্ফিংস, লুসিন, সোলার, জাপিয়ান কোনটি ব্যবহারের জন্য ফিট? [বন্ধ]


431

আমি বর্তমানে একটি বিশাল এসকিউএল কোয়েরি না করে অন্যান্য অনুসন্ধানের পদ্ধতিগুলি দেখছি। আমি ইলাস্টিকসার্চটি সম্প্রতি দেখেছি এবং হুশ (একটি অনুসন্ধান ইঞ্জিনের একটি পাইথন বাস্তবায়ন) দিয়ে খেলি

আপনি কি আপনার পছন্দ (গুলি) জন্য কারণ দিতে পারেন?


8
স্ফিংস বনাম সোলার তুলনা: স্ট্যাকওভারফ্লো.com
মৌরিসিও শেফার



167
আমি সত্যই এমন লোকদের বুঝতে পারি না যারা এই জাতীয় একটি গঠনমূলক প্রশ্ন বন্ধ করে দেয়। এই জাতীয় প্রশ্নগুলি
সত্যই

2
যারা লক্ষ্য প্রশ্নটিও চালাচ্ছে।
amirouche

উত্তর:


787

ইলাস্টিক অনুসন্ধানের স্রষ্টা হিসাবে, আমি কেন এগিয়ে গিয়েছিলাম এবং এটি প্রথম স্থানে তৈরি করেছি সে সম্পর্কে আমি আপনাকে কিছু যুক্তি দিতে পারি :)।

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

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

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

এ কারণেই আমি এগিয়ে গিয়ে ইলাস্টিক অনুসন্ধান তৈরি করেছি। এটির একটি অত্যন্ত উন্নত বিতরণকারী মডেল রয়েছে, জেএসএন স্থানীয়ভাবে কথা বলে এবং অনেকগুলি উন্নত অনুসন্ধান বৈশিষ্ট্য প্রকাশ করে, যা জাসন ডিএসএল-এর মাধ্যমে নির্বিঘ্নে প্রকাশ করা হয়েছিল।

সোলার এইচটিটিপি-র মাধ্যমে একটি ইনডেক্সিং / অনুসন্ধান সার্ভার উন্মোচিত করার একটি সমাধানও, তবে আমি যুক্তি দিয়ে বলব যে ইলাস্টিক অনুসন্ধান অনেক উন্নত বিতরণকারী মডেল এবং ব্যবহারের সহজতা সরবরাহ করে (যদিও বর্তমানে অনুসন্ধানের কয়েকটি বৈশিষ্ট্যের অভাব রয়েছে, তবে দীর্ঘ সময়ের জন্য নয়, এবং কোনওটিতে) কেস, পরিকল্পনাটি হ'ল ইলাস্টিক অনুসন্ধানে সমস্ত কম্পাস বৈশিষ্ট্য অন্তর্ভুক্ত করা হবে)। অবশ্যই আমি পক্ষপাতদুষ্ট, যেহেতু আমি ইলাস্টিক অনুসন্ধান তৈরি করেছি, সুতরাং আপনার নিজের জন্য যাচাই করতে হতে পারে।

স্পিঙ্কস হিসাবে, আমি এটি ব্যবহার করি নি, তাই আমি মন্তব্য করতে পারি না। আমি আপনাকে যা উল্লেখ করতে পারি তা হ'ল স্পিনেক্স ফোরামের এই থ্রেডে যা আমি মনে করি ইলাস্টিক অনুসন্ধানের উন্নত বিতরণকারী মডেলটিকে প্রমাণ করে।

অবশ্যই, ইলাস্টিক অনুসন্ধানে কেবল বিতরণ করা ছাড়াও আরও অনেকগুলি বৈশিষ্ট্য রয়েছে। এটি আসলে মেঘের কথা মাথায় রেখেই নির্মিত হয়েছে। আপনি সাইটে বৈশিষ্ট্য তালিকা চেক করতে পারেন।


38
"আপনি জানেন, অনুসন্ধানের জন্য"। হুডসাকর প্রক্সি জন্য +1। এছাড়াও, আমি সফ্টওয়্যার দ্বারা আগ্রহী;)
শ্যাব্রয়েব

7
এছাড়াও, ভিডিওটি সত্যিই খুব ভালভাবে সম্পন্ন হয়েছিল। আপনি তাদের কিছু যোগ করা উচিত!
শাবিরোব

5
ভাল লাগল, আমি খুঁজে পেয়েছি যে আমি হিরকু দিয়ে ইলাস্টিক্স বিনামূল্যে ব্যবহার করতে পারি, সোলার জাতীয় অর্থ ব্যবহারের বিরোধিতা করে ...
Hellomello

3
ইলাস্টিক অনুসন্ধানে কোনও ডেটা ছাড়াই একটি নতুন ইনস্টল করার পরে 64 বিট উবুন্টুতে একটি বড় 230MB র্যাম ব্যবহার করা হয়। আমি সত্যিই ইলাস্টিকসার্ক পোস্টগ্র্রেএসকিউএল বা রেডিসের মতো ছোট ভিপিএসে চালানো যেতে চাই।
জিওনক্রস

@ এক্সনক্রস আপনি কীভাবে এটি পরিচালনা করে তা পরিচালনা করতে পারেন? আমার 1 জিবি র‌্যাম ভিপিএস রয়েছে, আমি সবসময় মেমরির ত্রুটি বরাদ্দ করতে পারি না ..
মোহাম্মদ নুরাল্ডিন

67

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

আপনি যদি কেবল একটি সাধারণ পূর্ণ পাঠ্য অনুসন্ধান সেটআপ রাখতে চান তবে স্ফিংক্স আরও ভাল পছন্দ।

আপনি যদি নিজের অনুসন্ধানটি একেবারে কাস্টমাইজ করতে চান তবে ইলাস্টিকসার্চ এবং সোলারই সেরা পছন্দ। এগুলি খুব বর্ধনযোগ্য: ফলাফল স্কোরিং সামঞ্জস্য করতে আপনি নিজের প্লাগইন লিখতে পারেন।

কিছু উদাহরণ ব্যবহার:

  • স্পিনিক্স: ক্রেগলিস্ট.অর্গ
  • সোলার: সিএনটি, নেটফ্লিক্স, ডিজিগ ডট কম
  • ইলাস্টিকসার্ক: ফোরস্কয়ার, গিথুব

63

আমরা লক্ষ লক্ষ ডকুমেন্টকে ইনডেক্স এবং অনুসন্ধানে নিয়মিত লুসিন ব্যবহার করি। অনুসন্ধানগুলি যথেষ্ট দ্রুত এবং আমরা বর্ধিত আপডেটগুলি ব্যবহার করি যা খুব বেশি সময় নেয় না। আমাদের এখানে আসতে কিছুটা সময় নিয়েছিল। লুসিনের শক্তিশালী পয়েন্টগুলি হ'ল তার মাপের ক্ষমতা, বিশাল বৈশিষ্ট্য এবং বিকাশকারীদের একটি সক্রিয় সম্প্রদায়। খালি Lucene ব্যবহার করার জন্য জাভাতে প্রোগ্রামিং প্রয়োজন।

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

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

আইএমও, আপনার অনুসারে নির্বাচন করা উচিত:

  • প্রয়োজনীয় কার্যকারিতা - যেমন আপনার কোনও ফরাসি স্টেমার দরকার? লুসিন এবং সোলারের একটি আছে, আমি অন্যদের সম্পর্কে জানি না।
  • বাস্তবায়নের ভাষায় দক্ষতা - আপনি জাভা না জানলে জাভা লুসিনকে স্পর্শ করবেন না। স্পিঙ্কস সহ স্টাফ করার জন্য আপনার সি ++ এর প্রয়োজন হতে পারে। Lucene অন্যান্য ভাষায় পোর্ট করা হয়েছে । আপনি সন্ধান ইঞ্জিনটি প্রসারিত করতে চাইলে এটি বেশিরভাগই গুরুত্বপূর্ণ।
  • পরীক্ষার সহজতা - আমার বিশ্বাস সোলার এই দিক থেকে সেরা best
  • অন্যান্য সফ্টওয়্যারটির সাথে ইন্টারফেসিং - মাইএসকিউএল সহ স্পিনিক্সের একটি ভাল ইন্টারফেস রয়েছে। সোলার রুবি, এক্সএমএল এবং জেএসওএন ইন্টারফেসকে একটি রেস্টস্টুল সার্ভার হিসাবে সমর্থন করে। Lucene কেবল জাভা দিয়ে আপনাকে প্রোগ্রামিক অ্যাক্সেস দেয়। কম্পাস এবং হাইবারনেট অনুসন্ধান লুসিনের মোড়ক যা এটিকে বৃহত ফ্রেমওয়ার্কগুলিতে একীভূত করে।

1
আপনি একটি গুরুত্বপূর্ণ ধারণা উত্থাপন করেছিলেন যে কোনও অনুসন্ধান ইঞ্জিন অবশ্যই অভিযোজ্য হবে।
dzen

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

21

আমরা মাইএসকিএল রেকর্ডের ১০,০০০.০০+ এবং 10+ বিভিন্ন ডাটাবেস সহ একটি উল্লম্ব অনুসন্ধান প্রকল্পে স্পিনিক্স ব্যবহার করি। এটি মাইএসকিউএল এবং ইনডেক্সিংয়ে উচ্চ কার্যকারিতার জন্য খুব দুর্দান্ত সমর্থন পেয়েছে, গবেষণাটি দ্রুত তবে লুসিনের চেয়ে কিছুটা কম। তবে আপনার যদি প্রতিদিন প্রতিদিন সূচকের প্রয়োজন হয় এবং কোনও মাইএসকিউএল ডিবি ব্যবহার করা হয় তবে এটি সঠিক পছন্দ।



13

আমার স্পিংক্স.কনফ

source post_source 
{
    type = mysql

    sql_host = localhost
    sql_user = ***
    sql_pass = ***
    sql_db =   ***
    sql_port = 3306

    sql_query_pre = SET NAMES utf8
    # query before fetching rows to index

    sql_query = SELECT *, id AS pid, CRC32(safetag) as safetag_crc32 FROM hb_posts


    sql_attr_uint = pid  
    # pid (as 'sql_attr_uint') is necessary for sphinx
    # this field must be unique

    # that is why I like sphinx
    # you can store custom string fields into indexes (memory) as well
    sql_field_string = title
    sql_field_string = slug
    sql_field_string = content
    sql_field_string = tags

    sql_attr_uint = category
    # integer fields must be defined as sql_attr_uint

    sql_attr_timestamp = date
    # timestamp fields must be defined as sql_attr_timestamp

    sql_query_info_pre = SET NAMES utf8
    # if you need unicode support for sql_field_string, you need to patch the source
    # this param. is not supported natively

    sql_query_info = SELECT * FROM my_posts WHERE id = $id
}

index posts 
{
    source = post_source
    # source above

    path = /var/data/posts
    # index location

    charset_type = utf-8
}

পরীক্ষার স্ক্রিপ্ট:

<?php

    require "sphinxapi.php";

    $safetag = $_GET["my_post_slug"];
//  $safetag = preg_replace("/[^a-z0-9\-_]/i", "", $safetag);

    $conf = getMyConf();

    $cl = New SphinxClient();

    $cl->SetServer($conf["server"], $conf["port"]);
    $cl->SetConnectTimeout($conf["timeout"]);
    $cl->setMaxQueryTime($conf["max"]);

    # set search params
    $cl->SetMatchMode(SPH_MATCH_FULLSCAN);
    $cl->SetArrayResult(TRUE);

    $cl->setLimits(0, 1, 1); 
    # looking for the post (not searching a keyword)

    $cl->SetFilter("safetag_crc32", array(crc32($safetag)));

    # fetch results
    $post = $cl->Query(null, "post_1");

    echo "<pre>";
    var_dump($post);
    echo "</pre>";
    exit("done");
?>

নমুনা ফলাফল:

[array] => 
  "id" => 123,
  "title" => "My post title.",
  "content" => "My <p>post</p> content.",
   ...
   [ and other fields ]

স্ফিংস ক্যোয়ারির সময়:

0.001 sec.

স্ফিংস ক্যোয়ারির সময় (1 ক সমকালীন):

=> 0.346 sec. (average)
=> 0.340 sec. (average of last 10 query)

মাইএসকিউএল ক্যোয়ারির সময়:

"SELECT * FROM hb_posts WHERE id = 123;"
=> 0.001 sec.

মাইএসকিউএল ক্যোয়ারির সময় (1 ক সমকালীন):

"SELECT * FROM my_posts WHERE id = 123;" 
=> 1.612 sec. (average)
=> 1.920 sec. (average of last 10 query)

আপনি কি স্ফিংস বা স্থিতিস্থাপক চেষ্টা করেছেন?
dzen

2
@dzen এই আইএস স্পিংক্স; তিনি ক্যোয়ারী এক্সিকিউশন গতির তুলনা হিসাবে মাইএসকিএল কোয়েরি ব্যবহার করছেন।
মিঃআরবি

8

একমাত্র স্থিতিস্থাপক বনাম সোলার পারফরম্যান্স তুলনা যা আমি এখনও অবধি খুঁজে পেতে পেরেছি তা এখানে:

সোলার বনাম ইলাস্টিকের ডেথমেচ!


1
এটি একটি খারাপ। তিনি মন্তব্য উপস্থাপন করেন না! এই আলোচনাটি দেখুন: groups.google.com/a/elasticsearch.com/group/users/browse_thread/…
কারসেল

1
-1 কারণ "আমার আপনার মন্তব্য সংযমের অপেক্ষায়।" এবং অন্যরাও উপরের গুগল গ্রুপগুলির লিঙ্কটি দেখতে পান
কারসেল

1
-1, এক বছরেরও বেশি পরে, সেই থ্রেডে কোনও মন্তব্য করার অনুমতি নেই, আমি এটিকে সম্পূর্ণ উপেক্ষা করে গুরুত্ব সহকারে বিবেচনা করব।
JAR.JAR.beans

7

লুসিন দুর্দান্ত এবং সমস্ত, তবে তাদের স্টপ ওয়ার্ড সেটটি ভয়াবহ। এটিকে ব্যবহারযোগ্যতার কাছাকাছি পাওয়ার জন্য আমাকে নিজেই স্টপএনালিজারে এক টন স্টপ শব্দ যুক্ত করতে হয়েছিল EN এএনজিএলআইএসপিপি_ডাব্লর্ডস_এসটি।

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


7

অনির্দিষ্টকেন্দ্র চেষ্টা করুন।

ইলাস্টিক অনুসন্ধানের ক্ষেত্রে এটি লুসিন / সোলারের চেয়ে বেশি সহজে ব্যবহার করা যায় বলে ধারণা করা হয়েছিল। এটিতে খুব নমনীয় স্কোরিং সিস্টেম অন্তর্ভুক্ত রয়েছে যা পুনর্নির্দেশনা ছাড়াই টুইট করা যায়।


রানার সময় সোলারের সাথেও স্কোর করা টুইটার হতে পারে
কারসেল

এখন আর কোনও অনির্বাণ নেই
কারসেল

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