1

Windows Search 機能を使用して、ユーザーがサイトのページとドキュメントを検索できるようにする Web サイトがあります。ほとんどのユーザーはすでに Google スタイルの検索構文に慣れているので、できるだけ直感的に検索できるようにしたいと考えています。ただし、Windows Search を使用すると、2 つの問題が発生するようです。

  1. 述語を使用するFREETEXT()と、ユーザーは特定の Google スタイルの構文オプションを入力できます。たとえば、完全一致のフレーズを二重引用符で囲んだり、マイナス記号を使用して特定の単語を除外したりできます。これらは私が必要と考える機能です。ただし、FREETEXT()述語は、結果で返されるために、すべての検索用語がページ/ドキュメントのどこかに現れることを要求しているようです。

  2. 述語を使用するCONTAINS()と、ユーザーはブール演算子を使用して検索語を入力でき、その*文字を使用してワイルドカード検索を実行できます。ただし、すべての検索語は、論理演算子のいずれかで結合するか、二重引用符で囲む必要があります。

私が望むのは、2つの組み合わせです。ユーザーは、二重引用符を使用して正確なフレーズを検索したり、マイナス記号を使用して単語を除外したりできる必要がありますが、引用符で囲まれていないものはすべてワイルドカード マッチングの対象にする必要があります (たとえば、civ を検索すると、civil または Civility という単語を含むドキュメントが返されます)。文明)。

これを実装するにはどうすればよいですか?

4

1 に答える 1

0

http://www.codeproject.com/Articles/21142/How-to-Use-Windows-Vista-Search-API-from-a-WPF-Appの指示に従って、Interop.SearchAPI.dll を作成しました。 .NET のアセンブリ。次に、このISearchQueryHelper.GenerateSQLFromUserQuery()メソッドを使用して SQL コマンドを作成しました。

生成された SQL はCONTAINS()述語を使用しますがCONTAINS()、ワイルド カードを含む検索語のさまざまな組み合わせを使用して述語を何度も作成します。これにより、ユーザーは二重引用符を使用して正確なフレーズを入力し、マイナス記号を使用して単語を除外し、元の質問で述べたように自動ワイルドカード マッチングを実行できます。

于 2013-02-21T14:41:10.563 に答える