メインコンテンツまでスキップ

優先順位

検索の優先順位

特定の優先順位に従って検索クエリを処理することで、複数の演算子が組み合わされた場合でも、複雑な検索が一貫した結果を返すことが保証されます。Docwize の検索エンジンは、まずグループ化された式(括弧)と正確なフレーズを評価し、次に否定、積集合(AND)を適用し、最後に和集合(OR)を適用します。評価の順序を明示的に制御するために、常に括弧を使用できます。

このページで理解できること

  • Docwize が検索演算子を評価する順序
  • グループ化と正確なフレーズが結果に与える影響
  • 一般的な検索優先順位の誤りを避ける方法

優先順位

優先度演算子説明
1()式をグループ化し評価順序を強制する(invoice OR receipt) AND approved
2" "テキストを正確なフレーズとして扱う"project summary" AND report
3! または NOT語句またはフレーズを除外するreport !draft
4&& または ANDすべての語句を必須にするproject AND report
5|| または ORいずれかの語句を必須にするinvoice OR receipt

実際の優先順位の例

演算子タイプ説明クエリ例評価と結果
括弧 ( )括弧内のものは最初に評価されます。(invoice OR receipt) AND approvedapproved と、invoice または receipt のいずれかを含む結果を返します。
フレーズ一致 " "引用されたフレーズは単語を正確に結びつけます。"project summary" AND report正確なフレーズ project summary と、任意の場所にある report を含む結果を検索します。
NOT / ! (否定)否定は積集合の前に適用されます。report AND !draftreport を含むが draft を除外した文書を返します。
AND / && (積集合)Docwize のデフォルト演算子。project reportproject AND report と解釈されます — 両方の語句が出現する必要があります。
|| または OROR は最も低い優先度を持ち、両側の結果を組み合わせます。invoice OR receipt AND approvedinvoice OR (receipt AND approved) として評価されます。

優先順位エラーの例

これらの例は、演算子の優先順位(Docwize が検索語句を処理する順序)の誤解が、特に ANDORNOT を組み合わせる場合に予期しない結果につながる可能性があることを示しています。

1. 曖昧な OR

シナリオ誤ったクエリユーザーの意図実際の評価何が問題か修正方法
ユーザーが report または summary のいずれかである最終文書をすべて検索したい場合。report OR summary AND final(report OR summary) AND finalreport OR (summary AND final)クエリは以下を返します:
- report を含むすべての文書(final でなくても)。
- summaryfinal の両方を含むすべての文書。

これは意図より広くなっています。
(report OR summary) AND final

2. 曖昧な NOT

シナリオ誤ったクエリユーザーの意図実際の評価何が問題か修正方法
ユーザーがすべての invoice を検索したいが、draft または archived のものを除外したい場合。invoice AND NOT draft OR archivedinvoice AND NOT (draft OR archived)invoice AND (NOT draft) OR archived- ANDNOTOR よりも強く結びつきます。
- invoice を含み draft を含まない文書を返します。
- さらにすべての archived 文書も含まれます — invoice でないものも。
invoice AND NOT (draft OR archived)
または
invoice AND !draft AND !archived

3. 引用符なしのフレーズ

シナリオ誤ったクエリユーザーの意図実際の評価何が問題か修正方法
ユーザーが 2024 年の正確なフレーズ "project status report" を含む文書を検索したい場合。project status report AND year:2024"project status report" AND year:2024(project AND status AND report) AND year:2024- projectstatusreport を任意の場所で検索します(必ずしも一緒でなくてもよい)。
- 無関係な結果が多数含まれます。
"project status report" AND year:2024