前回は文書フィルタというしくみについて解説しました。今回は、
プロパティ検索式
FINDSPOTでは、
"織田信長"
また、
"織田信長" AND "豊臣秀吉"
プロパティ検索を行う場合には、
[ プロパティ名 演算子 "文字列" ]
プロパティ検索の演算子の種類は次のようなものをサポートしています。
[プロパティ名 "文字列"] | 特定のプロパティに文字列を含む文書を検索 |
[プロパティ名 ^ "文字列"] | 特定のプロパティが指定文字列で始まる文書を検索 |
[プロパティ名 $ "文字列"] | 特定のプロパティが指定文字列で終る文書を検索 |
[プロパティ名 = "文字列"] | 特定のプロパティが指定文字列の値である文書を検索 |
[プロパティ名 < "文字列"] | 特定のプロパティが指定文字列より小さな値の文書を検索 |
[プロパティ名 > "文字列"] | 特定のプロパティが指定文字列より大きな値の文書を検索 |
[プロパティ名 <= "文字列"] | 特定のプロパティが指定文字列以下の値の文書を検索 |
[プロパティ名 >= "文字列"] | 特定のプロパティが指定文字列以上の値の文書を検索 |
[プロパティ名 >= "文字列1" <= "文字列2"] | 特定のプロパティが文字列1以上かつ文字列2以下の文書を検索 |
[プロパティ名 > "文字列1" < "文字列2"] | 特定のプロパティが文字列より大きく文字列2より小さな文書を検索 |
<, >, <=, >=の演算子を使ったプロパティ指定はSQLデータベースに記録した数値や日付時刻フィールドに対してのみ使用できます。演算子なし、
プロパティ検索式の例として、
[ title "スイーツ" ]
この検索式は、
[ title "スイーツ" ] AND [ body "ロールケーキ" ]
という検索式は、
[ title "スイーツ" ] AND [ body "ロールケーキ" ] AND [ day <= "2008/01/01" ]
という検索式は、
プロパティ検索式と通常の全文検索を条件式で組み合わせて使うことも可能です。
[ title "スイーツ" ] AND "チーズケーキ"
この例では、
通常の全文検索とプロパティ検索との違いは、
デフォルト検索プロパティ
プロパティ検索機能は、
([ title "スイーツ" ] AND [ title "シフォンケーキ" ]) OR ([ body "スイーツ" ] AND [ body "シフォンケーキ" ])
ところが、
([ title "スイーツ" ] AND [ title "シフォンケーキ" ]) OR ([ body "スイーツ" ] AND
[ body "シフォンケーキ" ]) OR ([ title "スイーツ" ] AND [ body "シフォンケーキ" ]) OR
([ body "スイーツ" ] AND [ title "シフォンケーキ" ])
単純な目的の検索なのに検索式がずいぶんと複雑になってしまいました。この欠点を補うために導入したのが、
デフォルトプロパティ指定は、
PROPS プロパティ名
複数のプロパティをデフォルトの全文検索対象として指定するには、
PROPS プロパティ名1, プロパティ名2, プロパティ名3
プロパティには全文検索対象のフィールドのみが指定可能です。指定できるプロパティ名の数の上限はありません。
先のタイトルと本文のいずれかに
PROPS title, body "スイーツ" AND "シフォンケーキ"
前述の例と比べて、
デフォルト検索プロパティは、
PROPS title, body "福田" ADJ<10> "首相"
この検索式は、