हमने हाल ही में नई वास्तविक समय मोड के बारे में एक लेख प्रकाशित किया है। इस लेख में, हम विस्तार से देखेंगे कि यह कैसे काम करता है और आप इसे अपने तरीके से कैसे उपयोग कर सकते हैं। हम SQL बयानों का उपयोग करके Manticore Search में इंडेक्स को कैसे प्रबंधित करें, यह सीखेंगे।
इंडेक्स निर्माण
आईए पहले SQL के माध्यम से Manticore से कनेक्ट करें:
root@rtmode-79f9d6d867-fptcc:/# mysql -P9306 -h0
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 3.4.0 0686d9f0@200326 release
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
एक साधारण तालिका निर्माण बयाना इस प्रकार दिखता है:
MySQL [(none)]> CREATE TABLE testrt1 (title TEXT, category INT);
यह एक इंडेक्स बनाएगा जिसमें दस्तावेज़ आइडी (जिसे घोषित करने की आवश्यकता नहीं है), एक पाठ क्षेत्र और एक पूर्णांक विशेषता होगी।
इंडेक्स विभिन्न विकल्पों का समर्थन करते हैं जिन्हें उद्घोषणा पर पारित किया जा सकता है:
उदाहरण के लिए:
MySQL [(none)]> CREATE TABLE testrt2 (title TEXT, category INT) html_strip='1' docstore_compression_level = '12';
इस इंडेक्स में टेक्स्ट से HTML को हटा दिया जाएगा और दस्तावेज़ भंडारण के लिए संपीड़न स्तर उच्चतम स्तर पर सेट किया गया है।
यदि प्रकार निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट रूप से इंडेक्स वास्तविक समय होगा। यदि हम एक वितरित इंडेक्स बनाना चाहते हैं, तो हमें प्रकार पारित करना होगा:
MySQL [(none)]> CREATE TABLE testrtdist type='distributed' local='testrt1' local='testrt2';
यदि हम निश्चित नहीं हैं कि तालिका पहले से बनाई गई है या नहीं, तो ‘IF NOT EXISTS’ खंड का उपयोग करके एक त्रुटि से बचा जा सकता है:
MySQL [(none)]> CREATE TABLE IF NOT EXISTS testrt1 (title TEXT, category INT);
यह संभव है कि किसी पहले से मौजूद इंडेक्स की सेटिंग्स और स्कीमा का उपयोग करके एक इंडेक्स बनाया जाए:
MySQL [(none)]> CREATE TABLE testrt3 LIKE testrt2;
अधिक तालिका संचालन
एक इंडेक्स को हटाने के लिए DROP TABLE का उपयोग करें:
MySQL [(none)]> DROP TABLE testrt3;
एक इंडेक्स को खाली करने के लिए:
MySQL [(none)]> TRUNCATE TABLE testrt2;
किसी कॉलम को जोड़ने या हटाने के लिए:
MySQL [(none)]> ALTER TABLE testrt2 ADD COLUMN tagId INT;
MySQL [(none)]> ALTER TABLE testrt2 DROP COLUMN tagId;
कृपया ध्यान दें कि TEXT फ़ील्ड वर्तमान में नहीं जोड़े या हटाए जा सकते हैं। यदि आपको TEXT फ़ील्ड को संशोधित करने की आवश्यकता है, तो आपको तालिका को फिर से बनाना होगा।
इंडेक्स सेटिंग्स को बदलना भी संभव है:
MySQL [(none)]> ALTER TABLE testrt2 ignore_chars='.';
कृपया ध्यान दें कि टोकनाइजेशन सेटिंग्स मौजूदा डेटा पर लागू नहीं होंगी, केवल ALTER के बाद जोड़े गए नए दस्तावेज़ प्रभावित होंगे।
यदि आपको संपूर्ण संग्रह को अपडेट करने की आवश्यकता है, तो इंडेक्स को इच्छित सेटिंग्स के साथ फिर से बनाया जाना चाहिए।
तालिका जानकारी
एक इंडेक्स के बारे में जानकारी प्रदान करने वाले कई बयानों हैं।
इंडेक्स स्कीमा प्राप्त करने के लिए:
MySQL [(none)]> DESCRIBE testrt2;
+----------+--------+----------------+
| Field | Type | Properties |
+----------+--------+----------------+
| id | bigint | |
| title | field | indexed stored |
| category | uint | |
+----------+--------+----------------+
दस्तावेज़ों की संख्या, आकार, और प्रदर्शन मेट्रिक्स के बारे में जानकारी SHOW INDEX STATUS के साथ देखी जा सकती है:
MySQL [(none)]> SHOW INDEX testrt2 STATUS;
+-------------------+--------------------------------------------------------------------------+
| Variable_name | Value |
+-------------------+--------------------------------------------------------------------------+
| index_type | rt |
| indexed_documents | 0 |
| indexed_bytes | 0 |
| ram_bytes | 5840 |
| disk_bytes | 331 |
| ram_chunk | 0 |
| ram_chunks_count | 0 |
| disk_chunks | 0 |
| mem_limit | 134217728 |
| ram_bytes_retired | 0 |
| tid | 0 |
| tid_saved | 0 |
| query_time_1min | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| query_time_5min | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| query_time_15min | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| query_time_total | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| found_rows_1min | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| found_rows_5min | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| found_rows_15min | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
| found_rows_total | {"queries":0, "avg":"-", "min":"-", "max":"-", "pct95":"-", "pct99":"-"} |
+-------------------+--------------------------------------------------------------------------+
SHOW INDEX SETTINGS भी इंडेक्स सेटिंग्स की सूची प्रदान कर सकता है:
MySQL [(none)]> SHOW INDEX testrt2 SETTINGS;
+---------------+----------------------------------------------------------+
| Variable_name | Value |
+---------------+----------------------------------------------------------+
| settings | html_strip = 1 |
| | charset_table = non_cjk |
| | ignore_chars = . |
+---------------+----------------------------------------------------------+
यदि आपको पूर्ण सूची घोषणा का निर्यात करने की आवश्यकता है, तो SHOW CREATE TABLE का उपयोग करें:
MySQL [(none)]> SHOW CREATE TABLE testrt2;
+---------+-------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-------------------------------------------------------------------------------------------------------------------------------+
| testrt2 | CREATE TABLE testrt2 (category integer,title text indexed stored) html_strip='1' charset_table='non_cjk' ignore_chars='.' |
+---------+-------------------------------------------------------------------------------------------------------------------------------+
अनुक्रमणिका आयात करना
RT अनुक्रमणिकाओं को IMPORT TABLE कथन का उपयोग करके आयात किया जा सकता है।
अनुक्रमणिका फ़ाइलों को आपके द्वारा कॉन्फ़िगरेशन में निर्दिष्ट data_dir में कॉपी किया जाएगा।
उदाहरण:
MySQL [(none)]> IMPORT TABLE movies FROM '/index/movies_rt';
MySQL [(none)]> SELECT * FROM moviesG
*************************** 1. पंक्ति ***************************
id: 1
num_critic_for_reviews: 4
duration: 96
director_facebook_likes: 0
actor_3_facebook_likes: 460
actor_1_facebook_likes: 708
gross: 0
num_voted_users: 961
cast_total_facebook_likes: 2307
facenumber_in_poster: 0
num_user_for_reviews: 12
budget: 3500000
title_year: 2009
actor_2_facebook_likes: 574
movie_facebook_likes: 211
imdb_score: 4.800000
aspect_ration: 2.350000
color: रंग
movie_imdb_link: http://www.imdb.com/title/tt1002561/?ref_=fn_tt_tt_1
language: अंग्रेज़ी
country: अमेरिका
content_rating:
director_name: Charles Adelman
actor_2_name: Kevin Pollak
actor_1_name: Teri Polo
movie_title: 02:13
actor_3_name: Jere Burns
plot_keywords: death|forensic|murder|profiler|serial killer
...
*************************** 20. पंक्ति ***************************
id: 20
num_critic_for_reviews: 1
duration: 111
director_facebook_likes: 0
actor_3_facebook_likes: 247
actor_1_facebook_likes: 1000
gross: 14616
num_voted_users: 314
cast_total_facebook_likes: 2059
facenumber_in_poster: 1
num_user_for_reviews: 10
budget: 12000000
title_year: 2015
actor_2_facebook_likes: 445
movie_facebook_likes: 26000
imdb_score: 7.500000
aspect_ration: 1.850000
color: रंग
movie_imdb_link: http://www.imdb.com/title/tt3453052/?ref_=fn_tt_tt_1
language: अंग्रेज़ी
country: अमेरिका
content_rating: R
director_name: Timothy Hines
actor_2_name: Kelly LeBrock
actor_1_name: Christopher Lambert
movie_title: 10 Days in a Madhouse
actor_3_name: Alexandra Callas
plot_keywords:
हमें विश्वास है कि नया RT मोड जो एक नया डिफ़ॉल्ट मोड है, अधिकांश मामलों में Manticore Search में अनुक्रमणिकाओं को बनाए रखना आसान बना देगा। बाकी के लिए साधारण मोड अभी भी समर्थित है। आप
हमारी दस्तावेज़ीकरण
से अंतर के बारे में जान सकते हैं।
<img src="RT-mode-index-optimized.webp" alt="img">
इंटरैक्टिव कोर्स
आप हमारे “ManticoreSearch - RT मोड - अनुक्रमणिका प्रशासन” इंटरैक्टिव कोर्स में उपयोगकर्ता वास्तविक समय की अनुक्रमणिका प्रशासन के बारे में अधिक सीख सकते हैं, जिसमें आसान सीखने के लिए एक कमांड लाइन है।