.. -*- rst -*- .. highlightlang:: none .. groonga-command .. database: tutorial .. table_remove Site .. table_remove Terms åºæ¬çãªæä½ ============ groongaã¯ãCã®ã©ã¤ãã©ãªã¨ãã¦ä½¿ç¨ããæ¹æ³ã¨ãgroongaå®è¡ãã¡ã¤ã«ãéãã¦ä½¿ç¨ããæ¹æ³ãããã¾ãã æ¬ãã¥ã¼ããªã¢ã«ã§ã¯ãgroongaå®è¡ãã¡ã¤ã«ã使ç¨ããæ¹æ³ã«ã¤ãã¦èª¬æãã¾ãã groongaå®è¡ãã¡ã¤ã«ã使ã£ã¦ãDBã®ä½æã»æä½ã»ãµã¼ãã®èµ·åã»ãµã¼ãã¸ã®æ¥ç¶ãªã©ã®æä½ãè¡ãã¾ãã DBã®ä½æ -------- 以ä¸ã®ãããªã³ãã³ããå®è¡ããã¨ããã¼ã¿ãã¼ã¹ãæ°è¦ã«ä½æãããã¨ãã§ãã¾ãã æ¸å¼ :: groonga -n ãã¼ã¿ãã¼ã¹ãã¹å -nãªãã·ã§ã³ã¯ããã¼ã¿ãã¼ã¹ãä½ããã¨ã示ãã¾ãã ãã¼ã¿ãã¼ã¹ãã¹åã«ã¯ãæ°ããä½æãããã¼ã¿ãã¼ã¹ã®ãã«ãã¹åãæå®ãã¾ãã ä¸è¨ã³ãã³ãã§ãã¼ã¿ãã¼ã¹ãä½æããã¨ããã®ã¾ã¾å¯¾è©±ã¢ã¼ãã¨å¼ã°ããã³ãã³ããåãä»ããã¢ã¼ãã«ãªãã¾ããCtrlãã¼ãæ¼ããªããdãã¼ãæ¼ãã¨ã対話ã¢ã¼ãããæãããã¨ãã§ãã¾ãã å®è¡ä¾:: % groonga -n /tmp/tutorial.db > ctrl-d % DBã®æä½ -------- æ¸å¼ :: groonga DBãã¹å [ã³ãã³ã] æ¢åã®ãã¼ã¿ãã¼ã¹ã®ãã«ãã¹åãDBãã¹åã«æå®ãã¾ãã ã³ãã³ããæå®ããã¨ãå®è¡çµæãè¿ãã¾ãã ã³ãã³ããæå®ããªãå ´åã«ã¯ã対話ã¢ã¼ãã«å ¥ãã¾ãã 対話ã¢ã¼ãã§ã¯ãæ¨æºå ¥åããã³ãã³ããèªã¿è¾¼ã¿ãé 次å®è¡ãã¾ãã æ¬ãã¥ã¼ããªã¢ã«ã§ã¯ã対話ã¢ã¼ãã主ã«ä½¿ç¨ãã¾ãã ãã¨ãã°ãstatusã¨ããã³ãã³ããå®è¡ãã¦ã¿ã¾ããããstatusã³ãã³ãã¯ãgroongaã®å®è¡ç¶æ ãè¿ãã³ãã³ãã§ãã .. groonga-command .. include:: ../example/tutorial/introduction-1.log .. .. % groonga -n /tmp/groonga-databases/introduction.db .. status 以ä¸ã®ããã«ãã³ãã³ãã®å®è¡çµæã¯åºæ¬çã«jsonå½¢å¼ã§è¿å´ããã¾ããjsonã®é åã®0çªç®ã®è¦ç´ ã«ãã¨ã©ã¼ã³ã¼ããå®è¡æéãªã©ã®æ å ±ãå ¥ãã¾ããjsonã®é åã®1çªç®ã®æ§åã«ãã³ãã³ãã®å®è¡çµæãå ¥ãã¾ãã ã³ãã³ã -------- groongaå®è¡ãã¡ã¤ã«ãgroongaãµã¼ããä»ãã¦æ§ã ãªã³ãã³ããå®è¡ãã¦ãDBãæä½ãããã¨ãã§ãã¾ãã ã³ãã³ãã¯ä»¥ä¸ã®æ¸å¼ã®ãã¡ããããã§ä¸ãããã¨ãã§ãã¾ãã :: æ¸å¼1: ã³ãã³ãå å¼æ°1 å¼æ°2 .. æ¸å¼2: ã³ãã³ãå --å¼æ°å1 å¤1 --å¼æ°å2 å¤2 .. æ¸å¼1ã¨2ã¯æ··ãã¦ä½¿ããã¨ãã§ãã¾ãã æ¸å¼2ã«ããã¦ã空ç½ããè¨å·ã"'()\ãã®ãã¡ãããããå«ãå¤ãæå®ãããå ´åã¯ãã·ã³ã°ã«ã¯ã©ã¼ã(')ãããã«ã¯ã©ã¼ã(")ã§å¤ãå²ã¿ã¾ãã 詳ããã¯ã :doc:`/executables/groonga` ã®ã³ãã³ãã®é ãåèã«ãã¦ãã ããã 主ãªã³ãã³ã ------------ :doc:`/commands/status` groongaããã»ã¹ã®ç¶æ ã表示ãã¾ãã :doc:`/commands/table_list` DBã«å®ç¾©ããã¦ãããã¼ãã«ã®ãªã¹ãã表示ãã¾ãã :doc:`/commands/column_list` ãã¼ãã«ã«å®ç¾©ããã¦ããã«ã©ã ã®ãªã¹ãã表示ãã¾ãã :doc:`/commands/table_create` DBã«ãã¼ãã«ã追å ãã¾ãã :doc:`/commands/column_create` ãã¼ãã«ã«ã«ã©ã ã追å ãã¾ãã :doc:`/commands/select` ãã¼ãã«ã«å«ã¾ããã¬ã³ã¼ããæ¤ç´¢ãã¦è¡¨ç¤ºãã¾ãã :doc:`/commands/load` ãã¼ãã«ã«ã¬ã³ã¼ããæ¿å ¥ãã¾ãã ãã¼ãã«ã®ä½æ -------------- :doc:`/commands/table_create` ã³ãã³ãã使ç¨ãã¦ãã¼ãã«ãä½æãã¾ãã groongaã§ã¯ãå¤ãã®å ´åãã¼ãã«ãä½æããéã«ä¸»ãã¼ãå¿ è¦ã¨ãªãã¾ããã¾ãã主ãã¼ã«ã¯åã¨ããã®æ ¼ç´æ¹æ³ãæå®ããå¿ è¦ãããã¾ãã åã«ã¤ãã¦ã¯ãã®ã¡ã®ãã¥ã¼ããªã¢ã«ã§è§¦ãã¾ãããã¼ã¿ã®ç¨®é¡ãããããã¦ãããã®ãã¨ã¤ã¡ã¼ã¸ãã¦ãã ããã 主ãã¼ã®æ ¼ç´æ¹æ³ã«ãã£ã¦ã主ãã¼ã§ã®æ¤ç´¢é度ããåæ¹ä¸è´æ¤ç´¢ã®å¯å¦ã決ã¾ãã¾ããããããã®ã¡ã®ãã¥ã¼ããªã¢ã«ã§è§¦ãã¾ãã ããã§ã¯ãShortTextåã®ä¸»ãã¼å¤ãæã¡ã主ãã¼ã®æ ¼ç´æ¹æ³ã¯HASHã§ããã'Site'ã¨ããååã®ãã¼ãã«ãä½æãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-2.log .. table_create --name Site --flags TABLE_HASH_KEY --key_type ShortText æ¤ç´¢ ---- :doc:`/commands/select` ã³ãã³ããç¨ãã¦ããã¼ãã«ã®ä¸èº«ã表示ãããã¨ãã§ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-3.log .. select --table Site selectã«ãã¼ãã«åãæå®ããã¨ãæå®ãããã¼ãã«ã®ä¸èº«ã10件表示ãã¾ãã[0]ã¯æ¤ç´¢ãããã¬ã³ã¼ãã®ä»¶æ°ã["_id","Uint32"]ã¯å¤ãUInt32åã§ãã"_id'ã¨ããååã®ã«ã©ã ã["_key","ShortText"]ã¯å¤ãShortTextåã§ãã'_key'ã¨ããååã®ã«ã©ã ã示ãã¦ãã¾ãã table_createã³ãã³ãã§ä½æãããã¼ãã«ã«ã¯ãæåãã'_id'/'_key'ã¨ããï¼ã¤ã®ã«ã©ã ãããã¾ãã'_id'ã¯groongaãèªåçã«ä»ä¸ããIDçªå·ãæ ¼ç´ãããã«ã©ã ã§ãã'_key'ã¯ä¸»ãã¼ãæ ¼ç´ãããã«ã©ã ã§ãããããã®ã«ã©ã åãå¤æ´ãããã¨ã¯ã§ãã¾ããã ã«ã©ã ã®ä½æ ------------ :doc:`/commands/column_create` ã³ãã³ããç¨ãã¦ãã«ã©ã ãä½æãããã¨ãã§ãã¾ãã ShortTextåã®å¤ãæã¤ã'comment'ã¨ããååã®ã«ã©ã ã'Site'ãã¼ãã«ã«è¿½å ãã¾ãããã .. groonga-command .. include:: ../example/tutorial/introduction-4.log .. column_create --table Site --name title --flags COLUMN_SCALAR --type ShortText .. select --table Site COLUMN_SCALARã«ã¤ãã¦ã¯ãé常ã®ã«ã©ã ã§ãããã¨ã示ãã¦ãã¾ãã å ¨ææ¤ç´¢ç¨ã®èªå½è¡¨ã®ä½æ ------------------------ ãã®ãã¥ã¼ããªã¢ã«ã§ã¯ãgroongaã«ç»é²ãããã¼ã¿ãç¨ããå ¨ææ¤ç´¢ãè¡ãã¾ãã å ¨ææ¤ç´¢ãè¡ãå ´åã¯ãã¾ãèªå½è¡¨ãä½æããå¿ è¦ãããã¾ãã èªå½è¡¨ã¨ã¯ãææ¸ã®ä¸ã«ããåèªã主ãã¼ã¨ãªããã¼ãã«ã§ãã ããã§ã¯ãShortTextåã®ä¸»ãã¼å¤ãæã¤ã'Terms'ã¨ããååã®ãã¼ãã«ãä½æãã¾ããã .. groonga-command .. include:: ../example/tutorial/introduction-5.log .. table_create --name Terms --flags TABLE_PAT_KEY|KEY_NORMALIZE --key_type ShortText --default_tokenizer TokenBigram ãã®å®è¡ä¾ã«ã¯ãå¤ãã®ãã©ã¡ã¼ã¿ãæå®ããã¦ãã¾ããæ¬ãã¥ã¼ããªã¢ã«ã§ã¯ããããããã¹ã¦ç解ããå¿ è¦ã¯ããã¾ããã以ä¸ã«ç°¡åãªèª¬æãè¨ãã¾ãããèªã¿é£ã°ãã¦ããã£ã¦ãã¾ãã¾ããã å®è¡ä¾ã«ãããTABLE_PAT_KEY|KEY_NORMALIZEã¨ããå¤ã¯ã主ãã¼å¤ããããªã·ã¢æ¨ã«æ ¼ç´ããåèªå½ãæ£è¦åãã¦ç»é²ãããã¨ã示ãã¦ãã¾ãã å®è¡ä¾ã«ãããTokenBigramã¨ããå¤ã¯ã èªå½è¡¨ã¨ãã¦ä½¿ç¨ãããã¼ãã«ã¯ã対象ã®ææ¸ããã¼ã¯ãã¤ãºããæ¹å¼ããdefault_tokenizerãã©ã¡ã¼ã¿ã§ä¸ãã¾ãããã®ä¾ã§ã¯TokenBigramãæå®ãã¦ãã¾ãããã£ã¦ãä¸è¬çã«N-gramã¨å¼ã°ãããããªã¤ã³ããã¯ã¹æ¹å¼ãé¸æãã¦ãã¾ãã å ¨ææ¤ç´¢ç¨ã®ã¤ã³ããã¯ã¹ã«ã©ã ã®ä½æ ------------------------------------ Siteãã¼ãã«ã®titleã«ã©ã ãå ¨ææ¤ç´¢ã®å¯¾è±¡ã¨ãããã¨ãã¾ãããããã®å ´åã«ã¯ãèªå½è¡¨ã«ã¤ã³ããã¯ã¹åã®ã«ã©ã ãä½æãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-6.log .. column_create --table Terms --name blog_title --flags COLUMN_INDEX|WITH_POSITION --type Site --source title Siteãã¼ãã«ã®titleã«ã©ã ãæ¤ç´¢å¯¾è±¡ã¨ããã'blog_title'ã¨ããååã®ã¤ã³ããã¯ã¹åã«ã©ã ãTermsãã¼ãã«ã«ä½æãã¾ãããã¤ã³ããã¯ã¹å¯¾è±¡ã¨ãªããã¼ãã«ãtypeã«ãã¤ã³ããã¯ã¹å¯¾è±¡ã¨ãªãã«ã©ã ãsourceã«æå®ãã¾ãã å®è¡ä¾ã®flagsã®COLUMN_INDEX|WITH_POSITIONã¨ããå¤ã¯ãèªå½ã®ä½ç½®æ å ±ãæ ¼ç´ããã¤ã³ããã¯ã¹åã®ã«ã©ã ã§ãããã¨ã示ãã¦ãã¾ããé常ã®å ¨ææ¤ç´¢ã¤ã³ããã¯ã¹ã§ã¯ãCOLUMN_INDEX|WITH_POSITIONãæå®ãã¦ãã ãããèªå½ã®ä½ç½®æ å ±ãæ ¼ç´ããæå³ã«ã¤ãã¦ã¯ãæ¬ãã¥ã¼ããªã¢ã«ã§ã¯è§¦ãã¾ããã ãã¼ã¿ã®ãã¼ã -------------- :doc:`/commands/load` ã³ãã³ãã使ç¨ãã¾ããloadã³ãã³ãã§ã¯ãjsonã§åãåã£ããã¼ã¿ããã¼ãã«ã«æ ¼ç´ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-7.log .. load --table Site .. [ .. {"_key":"http://example.org/","title":"This is test record 1!"}, .. {"_key":"http://example.net/","title":"test record 2."}, .. {"_key":"http://example.com/","title":"test test record three."}, .. {"_key":"http://example.net/afr","title":"test record four."}, .. {"_key":"http://example.org/aba","title":"test test test record five."}, .. {"_key":"http://example.com/rab","title":"test test test test record six."}, .. {"_key":"http://example.net/atv","title":"test test test record seven."}, .. {"_key":"http://example.org/gat","title":"test test record eight."}, .. {"_key":"http://example.com/vdw","title":"test test record nine."}, .. ] selectã³ãã³ãã§ããã¼ã¿ãå ¥ã£ã¦ãããã¨ã確èªãã¾ãããã .. groonga-command .. include:: ../example/tutorial/introduction-8.log .. select --table Site ãã¼ã¿ã®æ¤ç´¢ ------------ groongaã§ã¯ã'_id'ã«ã©ã ã¨'_key'ã«ã©ã ã®å¤ã¯ãã¼ãã«ä¸ã§ä¸æã§ãããã£ã¦ããããç¨ãã¦æ¤ç´¢ãã¦ã¿ã¾ãããã selectã³ãã³ãã«ããã¦ãqueryãã©ã¡ã¼ã¿ãç¨ããã¨ãã¼ã¿ã®æ¤ç´¢ãè¡ããã¨ãã§ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-9.log .. select --table Site --query _id:1 queryãã©ã¡ã¼ã¿ã«ä¸ããã_id:1ãã¨ããã®ã¯ã'_id'ã¨ããååã®ã«ã©ã ã«'1'ã¨ããå¤ãå ¥ã£ã¦ããã¬ã³ã¼ããæ¤ç´¢ãããã¨ããæå³ã§ãã _keyã§ãæ¤ç´¢ãã¦ã¿ã¾ãããã .. groonga-command .. include:: ../example/tutorial/introduction-10.log .. select --table Site --query "_key:\"http://example.org/\"" queryãã©ã¡ã¼ã¿ã«ä¸ããã_key:\"http://example.org/\"ãã¨ããã®ã¯ã'_key'ã¨ããååã®ã«ã©ã ã«'"http://example.org/"'ã¨ããå¤ãå ¥ã£ã¦ããã¬ã³ã¼ããæ¤ç´¢ãããã¨ããæå³ã§ãã å ¨ææ¤ç´¢ -------- queryãã©ã¡ã¼ã¿ã§ã¯ãã¤ã³ããã¯ã¹ãç¨ããå ¨ææ¤ç´¢ãè¡ããã¨ãã§ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-11.log .. select --table Site --query title:@this titleã«ã©ã ã«å¯¾ãã¦ã'this'ã¨ããæååã§å ¨ææ¤ç´¢ãè¡ã£ãçµæãè¿ãã¾ãã queryãã©ã¡ã¼ã¿ã«ä¸ãããtitle:@thisãã¨ããã®ãã'title'ã¨ããååã®ã«ã©ã ã«'this'ã¨ããæååãå«ã¾ãã¦ããã¬ã³ã¼ããæ¤ç´¢ãããã¨ããæå³ã§ãã selectã³ãã³ãã«ã¯ãmatch_columnsã¨ãããã©ã¡ã¼ã¿ãåå¨ãã¾ãããããæå®ããã¨ãqueryå ã«ã«ã©ã åãæå®ããªãæ¡ä»¶ããã£ãå ´åãmatch_columnsã§æå®ãããã«ã©ã ã«å¯¾ãã¦ã®æ¤ç´¢ã§ãããã¨ã示ãã¾ãã[1]_ match_columnsãã©ã¡ã¼ã¿ã«'title'ãqueryãã©ã¡ã¼ã¿ã«'this'ã¨ããæååãæå®ããã¨ãä¸è¨ã®ã¯ã¨ãªã¨åãçµæãå¾ããã¨ãã§ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-12.log .. select --table Site --match_columns title --query this åºåã«ã©ã ã®æå® ---------------- selectã³ãã³ãã«ããã¦ãoutput_columnsãã©ã¡ã¼ã¿ãç¨ãããã¨ã§ãæ¤ç´¢çµæã§è¡¨ç¤ºããã«ã©ã ãæå®ãããã¨ãåºæ¥ã¾ãã è¤æ°ã®ã«ã©ã ãæå®ããå ´åã¯ãã«ã³ã(,)åºåãã§æå®ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-13.log .. select --table Site --output_columns _key,title,_score --query title:@test groongaã®æ¤ç´¢çµæã«ã¯ãã_scoreãã¨ããååã®ã«ã©ã ã追å ããã¦ãã¾ãããã®ã«ã©ã ã¯ãå ¨ææ¤ç´¢ã®æ¡ä»¶ãåè´ããææ¸ã»ã©é«ãæ°å¤ãå ¥ãã¾ãã 表示ç¯å²æå® ------------ selectã³ãã³ãã«ããã¦ãoffset,limitãã©ã¡ã¼ã¿ãç¨ãããã¨ã§ãæ¤ç´¢çµæããæå®ãããç¯å²ã®ã¿ã表示ãããã¨ãåºæ¥ã¾ãã大éã®æ¤ç´¢çµæããã¼ã¸ã§åãã¦ã1ãã¼ã¸åã®ã¿ã表示ãããå ´åã«æå¹ã§ãã offsetãã©ã¡ã¼ã¿ã«ã¯ãæ¤ç´¢çµæãè¿ãå§ç¹ãæå®ãã¾ãã1件ç®ããçµæãè¿ãå ´åã«ã¯ã0ãæå®ãã¾ãã limitãã©ã¡ã¼ã¿ã«ã¯ãæ¤ç´¢çµæãä½ä»¶è¡¨ç¤ºããã®ããæå®ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-14.log .. select --table Site --offset 0 --limit 3 .. select --table Site --offset 3 --limit 3 .. select --table Site --offset 7 --limit 3 並ã³æ¿ã -------- selectã³ãã³ãã«ããã¦ãsortbyãã©ã¡ã¼ã¿ãç¨ãããã¨ã§ãæ¤ç´¢çµæã並ã³æ¿ãããã¨ãåºæ¥ã¾ãã sortbyãã©ã¡ã¼ã¿ã«ã«ã©ã åãæå®ãããã¨ã§ããã®ã«ã©ã ã®å¤ã§æé ã«ã½ã¼ããã¾ããã¾ããã«ã©ã åã®åã«ãã¤ãã³ï¼-ï¼ãä»ãããã¨ã§ãéé ã«ã½ã¼ããããã¨ãåºæ¥ã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-15.log .. select --table Site --sortby -_id åºåã«ã©ã ã®æå®ã§ç´¹ä»ããã_scoreãã«ã©ã ã¯ãã½ã¼ãã®æ¡ä»¶ã¨ãã¦ã使ããã¨ãã§ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-16.log .. select --table Site --query title:@test --output_columns _id,_score,title --sortby _score ã½ã¼ãããã«ã©ã åãè¤æ°æå®ãããå ´åã¯ãã«ã³ã(,)åºåãã§æå®ãã¾ããè¤æ°ã®ã«ã©ã ãæå®ããå ´åãæåã®ã«ã©ã ã§åä¸ã®å¤ã®ã¬ã³ã¼ãããã£ãå ´åã«ã次ã®ã«ã©ã ã®å¤ã§ã½ã¼ãããããã¨ãã§ãã¾ãã .. groonga-command .. include:: ../example/tutorial/introduction-17.log .. select --table Site --query title:@test --output_columns _id,_score,title --sortby _score,_id .. rubric:: è注 .. [1] ç¾å¨ã®ãã¼ã¸ã§ã³ã§ã¯ãå ¨ææ¤ç´¢ã¤ã³ããã¯ã¹ãåå¨ããå ´åã«ã®ã¿ãmatch_columnsãã©ã¡ã¼ã¿ãå©ç¨ãããã¨ãã§ãã¾ããé常ã®ã«ã©ã ã§ã®çµãè¾¼ã¿ã«ã¯å©ç¨ã§ãã¾ããã