シビライザー検索オペレーター - suewonjp/civilizer-jpdoc GitHub Wiki
シビライザー検索オペレーターは細かい検索制御が行えるようにする為考案された機能である.
例えば,次の1番目の検索構文は簡単ではあるものの,2番目の構文より多くのフラグメントにマッチする為,非効率である.
big data databases
"big data"/c tag:databases
- この構文の意味については後で触れる.
より多くの検索結果は狙っていた情報に辿り着くまで時間がかかってしまう.
シビライザー検索オペレーターを使えば無関係のフラグメントを排除出来検索がもっと効率良くなる.
シビライザー検索オペレーターは_カテゴリオペレーター_と_フラグオペレーター_の2種類がある:
:heavy_check_mark: カテゴリオペレーター
このオペレーターは検索ワードを特定のカテゴリ(中身,タイトル,タグなど)だけに定まるようにすることで検索効率を向上する.
2つ以上のオペレーターを一緒に使うことも出来る.
- :
- 中身あるいはタイトルが検索ワードの全てを含むフラグメントにマッチする.
- 何のカテゴリーオペレーターも指定しない時は暗黙的にこのオペレーターが付けられる.
- 例)
: big data
=> 中身あるいはタイトルが次のテキストを含むフラグメントにマッチ:data is big
,big data
,Big data
, など.
- any:
- 中身あるいはタイトルが検索ワードの何かを含むフラグメントにマッチする.
- 例)
any: big data
=> 中身あるいはタイトルが次のテキストを含むフラグメントにマッチ:big animal
,database
,big data
, など .
- tag:
- タグに検索ワードの全てがマッチするフラグメントにマッチする.
- 例)
tag:xml html
=>xml
とhtml
両方のタグを持つフラグメントにマッチ. - 他のカテゴリオペレーターと違い
tag:
とanytag:
はコンマ区切りのリストを受け入れてくれる.- 従って,上記の検索構文は
tag:xml, html
とも書ける.
- 従って,上記の検索構文は
- anytag:
- タグに検索ワードの何かがマッチするフラグメントにマッチする.
- 例)
anytag:xml html
=>xml
あるいはhtml
のタグを持つフラグメントにマッチ.
- title:
- タイトルが検索ワードの全てを含むフラグメントにマッチする.
- 例)
title:install printer
=> タイトルがinstall
とprinter
を含むフラグメントにマッチ.
- anytitle:
- タイトルが検索ワードの何かを含むフラグメントにマッチする.
- 例)
anytitle:android ios
=> タイトルがandroid
あるいはios
(あるいは両方)を含むフラグメントにマッチ.
- text:
- 中身が検索ワードの全てを含むフラグメントにマッチする.
- 例)
text: big data
=> 中身が次のテキストを含むフラグメントにマッチ:data is big
,big data
,Big data
, など.
- anytext:
- 中身が検索ワードの何かを含むフラグメントにマッチする.
- 例)
any: big data
=> 中身が次のテキストを含むフラグメントにマッチ:big animal
,database
,big data
, など .
- id:
- 指定したIDのフラグメントにマッチする.
- 例)
id: 1 3 5 9
=> IDが1, 3, 5, 9の(4つの)フラグメントを取得.
[ コロン(:)について ]
コロン(:)はシビライザー検索オペレーターでは大事な意味を持つ.
もし,検索ワードが文字通りのコロンを含んだ場合, ダブルクオーテーションマーク(")で囲む. (例:"some-keyword:")[ 簡略型 (バージョン0.9.0.RC6から) ]
タイピングの手間を少しでも減らす為に次のように簡略して書くことが可能;
tag:
=>t:
title:
=>ti:
text:
=>te:
any:
=>a:
anytag:
=>at:
anytitle:
=>ati:
anytext:
=>ate:
[ タグの階層関係を考慮した検索 ]
タグの検索ワードは基本的に階層関係を考慮しない.
しかし,特定のタグとその子孫のタグに紐付いた全てのフラグメントを取得することも可能である.('/h' フラグオペレーターを利用する.下記参照.)
:heavy_check_mark: フラグオペレーター
これらのオペレーターは各検索ワードの尻に付けられることでマッチ条件を細かく制御出来る.
- /c
- (英語の)大文字/小文字を区別する(デフォルトでは区別しない)
- 例)
"Big Data"/c
はBig Data
にマッチするが,big data
にはマッチしない.
- /w
- 単語に完全一致
- 例)
device/w
はdevice
にマッチするが,devices
にマッチしない.
- /b
- 〜で始まる単語
- 例)
html/b
はhtml
やhtml5
にマッチするが,xhtml
にマッチしない.
- /e
- 〜で終わる単語
- 例)
mail/e
はemail
やGmail
にマッチするが,mails
にマッチしない.
- /r
- 正規表現
- 例)
https?/r
はhttp
やhttps
やhttps://
にマッチするが,ftp
にマッチしない.
- /-
- インバース
- 指定したパターンとマッチしないものをチョイス.
- 例)
android/-
はandroid
というテキストを含まないフラグメント(中身,タイトル,タグなどの対象はカテゴリオペレーターで定める)にマッチする.
- /h
- タグの階層関係を考慮
- タグカテゴリオペレーター(
:tag
や:anytag
)と一緒に使う時のみ有効. - そのタグに紐付いたフラグメントのみならず,それの子孫タグと紐付いたフラグメントにもマッチ.
- 例)
tag:business/h
はbusiness
というタグとその全ての子孫タグに紐付いたフラグメントを全部取得する.
- フラグオペーレーターは複数以上組み合わせることが出来る.
- 例)
Down/bc
はDownload
やDownside
にマッチする. (download
(小文字)やUpsideDown
(Down
で始まらない)にはマッチしない )- /b, /e, /w は**アンダースコア( _ )**以外の特殊文字(
~{}()#$@,%-+
など )を含む場合は(仕様上)正しく機能しないので注意.
上記の検索構文"big data"/c tag:databases
は次の条件に当てはまるフラグメントにマッチする.:
- 中身やタイトルに
big data
というテキストを含む:/c
フラグオペレーターがある為,大文字/小文字を区別する.- ダブルクオーテーションマークで囲んだ為,正確に
big data
そのものの構文 (big
+空白
+data
)にマッチする.
databases
というタグを持つ.