blog-post

Manticore Search में टेबल बनाना: सम्पूर्ण गाइड

क्या आपने कभी सोचा है कि Manticore Search में टेबल कैसे बनाई जाती है? चाहे आप बस शुरुआत कर रहे हों या अपने सेटअप को ऑप्टिमाइज़ करना चाहते हों, आपके लिए हमारे पास सब कुछ है। इस गाइड में, हम टेबल निर्माण के कई दृष्टिकोणों की खोज करेंगे - सबसे सरल ऑटो-स्कीमा विधि से लेकर अधिक उन्नत कॉन्फ़िगरेशन विकल्पों तक।

ऑटो-स्कीमा का जादू: कोई कॉन्फ़िगरेशन आवश्यक नहीं

क्या होगा अगर हम आपको बताएं कि आपको एक टेबल स्पष्ट रूप से बनाने की भी आवश्यकता नहीं है? Manticore के ऑटो-स्कीमा फ़ीचर के धन्यवाद, आप तुरंत डेटा डालना शुरू कर सकते हैं। आइए इस जादू को क्रियान्वित होते हुए देखते हैं:

drop table if exists test;
Query OK, 0 rows affected (0.00 sec)

insert into test (name, in_stock, price, properties) values('nice bag', 117, 1.15, '{"color": "red"}');
Query OK, 1 row affected (0.01 sec)

बस इतना ही! टेबल अपने आप बनाई जाती है। आइए इसकी संरचना की जांच करें:

desc test;
+------------+--------+----------------+
| Field      | Type   | Properties     |
+------------+--------+----------------+
| id         | bigint |                |
| name       | text   | indexed stored |
| in_stock   | uint   |                |
| price      | float  |                |
| properties | json   |                |
+------------+--------+----------------+
5 rows in set (0.01 sec)

और हमारा डेटा पहले से ही वहाँ है:

select * from test;
+---------------------+----------+----------+----------+-----------------+
| id                  | name     | in_stock | price    | properties      |
+---------------------+----------+----------+----------+-----------------+
| 1516257118578016257 | nice bag |      117 | 1.150000 | {"color":"red"} |
+---------------------+----------+----------+----------+-----------------+
1 row in set (0.00 sec)
--- 1 out of 1 results in 1ms ---

प्रो टिप: जबकि ऑटो-स्कीमा सुविधाजनक है, इसके अपने फ़ायदे और नुकसान हैं। सिस्टम आपके पहले डोक्यूमेंट के आधार पर फ़ील्ड प्रकारों का पता लगाता है, जो हमेशा आपकी इच्छाओं के साथ मेल नहीं खा सकता है। उदाहरण के लिए, आप एक स्ट्रिंग विशेषता चाहते हो सकते हैं, लेकिन यह पूर्ण-टेक्स्ट फ़ील्ड के रूप में बनाई जा सकती है।

मैन्युअल टेबल बनाना: नियंत्रण ग्रहण करना

जब आपको अपनी टेबल संरचना पर सटीक नियंत्रण की आवश्यकता होती है, तो मैन्युअल निर्माण सही तरीका है। यहाँ SQL का उपयोग करके इसे करने का तरीका है:

drop table if exists test;
Query OK, 0 rows affected (0.01 sec)

create table test(name text, in_stock int, price float, properties json);
Query OK, 0 rows affected (0.00 sec)

HTTP विधि: टेबल निर्माण के लिए REST API

HTTP के साथ काम करना पसंद है? Manticore ने आपकी सहायता की है! आप अपने टेबल प्रबंधित करने के लिए /cli फ़ीचर का उपयोग कर सकते हैं:

curl "0:9308/cli" -d 'drop table if exists test'
Query OK, 0 rows affected (0.002 sec)

curl "0:9308/cli" -d 'create table test(name text, in_stock int, price float, properties json)'
Query OK, 0 rows affected (0.011 sec)

curl "0:9308/cli" -d 'desc test'
+------------+--------+----------------+
| Field      | Type   | Properties     |
+------------+--------+----------------+
| id         | bigint |                |
| name       | text   | indexed stored |
| in_stock   | uint   |                |
| price      | float  |                |
| properties | json   |                |
+------------+--------+----------------+
5 rows in set (0.001 sec)

टेबल क्लोन करना: स्मार्ट कार्य करना, मेहनती नहीं

क्या आपको किसी मौजूदा टेबल के समान संरचना वाली एक टेबल की आवश्यकता है? CREATE TABLE LIKE स्टेटमेंट आपका मित्र है:

drop table if exists test2;
Query OK, 0 rows affected (0.00 sec)

create table test2 like test;
Query OK, 0 rows affected (0.01 sec)

desc test2;
+------------+--------+----------------+
| Field      | Type   | Properties     |
+------------+--------+----------------+
| id         | bigint |                |
| name       | text   | indexed stored |
| in_stock   | uint   |                |
| price      | float  |                |
| properties | json   |                |
+------------+--------+----------------+
5 rows in set (0.00 sec)

उन्नत कॉन्फ़िगरेशन: कॉन्फ़िग फ़ाइलों का उपयोग करना

हालांकि रीयल-टाइम मोड अनुशंसित डिफ़ॉल्ट है, कभी-कभी आपको अधिक नियंत्रण की आवश्यकता होती है या चीज़ों को पहले से घोषित करना चाहते हैं। यही वह जगह है जहाँ कॉन्फ़िगरेशन फ़ाइलें सहायक होती हैं। यहाँ एक उदाहरण कॉन्फ़िगरेशन है जो दोनों रीयल-टाइम और साधारण टेबलों का प्रदर्शन करता है:

searchd {
    listen = 9315:mysql41
    log = searchd.log
    pid_file = searchd.pid
    binlog_path =
}

source src {
    type = csvpipe
    csvpipe_command = echo "1,abc" && echo "3,def"
    csvpipe_field = F
}

table plain {
    type = plain
    source = src
    path = /tmp/plain
}

table goods {
    type = rt
    path = /tmp/rt
    rt_field = title
    rt_attr_uint = quantity
    rt_attr_float = price
}

इस कॉन्फ़िगरेशन के साथ Manticore को शुरू करने के बाद:

mysql -P9315 -h0 -e "show tables"
+-------+------+
| Table | Type |
+-------+------+
| goods | rt   |
+-------+------+

साधारण टेबल बनाने और उसे जनरेट करने के लिए, हमें इंडेक्सर चलाना होगा:

indexer -c manticore_test.conf --all --rotate

टेबलों को फिर से लोड करने के बाद:

mysql -P9315 -h0 -e "show tables"
+-------+-------+
| Table | Type  |
+-------+-------+
| goods | rt    |
| plain | local |
+-------+-------+

mysql -P9315 -v -h0 -e "select * from goods; select * from plain"
--------------
select * from goods
--------------

--------------
select * from plain
--------------

+------+------+
| id   | f    |
+------+------+
|    1 | abc  |
|    3 | def  |
+------+------+

निष्कर्ष

हमने Manticore Search में टेबल बनाने के लिए कई तरीकों को कवर किया है:

  • त्वरित प्रारंभ के लिए ऑटो-स्कीमा
  • सटीक नियंत्रण के लिए मैन्युअल निर्माण
  • REST-आधारित प्रबंधन के लिए HTTP API
  • त्वरित प्रतिकृति के लिए टेबल क्लोनिंग
  • उन्नत परिदृश्यों के लिए कॉन्फ़िगरेशन फ़ाइलें

प्रत्येक दृष्टिकोण के अपने उपयोग के मामले हैं, और सही का चयन आपके विशिष्ट आवश्यकताओं पर निर्भर करता है। रियल-टाइम मोड (डिफ़ॉल्ट) अधिकांश उपयोग के मामलों के लिए सरलता और लचीलापन प्रदान करता है, जबकि कॉन्फ़िगरेशन फ़ाइल दृष्टिकोण अधिक नियंत्रण और सर्वरों के बीच अधिक आसान तैनाती प्रदान करता है।

पाठक चुनौती: प्रत्येक विधि का उपयोग करते हुए एक तालिका बनाने का प्रयास करें और देखें कि कौन सा आपके कार्यप्रवाह के लिए सबसे अच्छा है!

पढ़ने के बजाय देखने को पसंद करते हैं? इस विषय पर हमारे विस्तृत वीडियो ट्यूटोरियल को चेक करें:

मैंटीकोर सर्च इंस्टॉल करें

मैंटीकोर सर्च इंस्टॉल करें