問題タブ [windows-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
592 参照

c# - 検索パフォーマンスを低下させることなく、C# で検索文字列を適切にサニタイズするにはどうすればよいですか?

ユーザーの入力文字列をサニタイズする必要があるのは、後で OLEDB クエリで文字列を使用してドキュメント リポジトリのインデックスを作成し、一致するファイルや説明などを見つけるためです。問題は、CONTAINSステートメントのクエリで特殊文字を含む文字列を使用できないことです。 .

精度を落とさずにサニタイズするために私がやっていることよりも良い方法はありますか?

私が現在行っていることは、検索文字列を取得し、正規表現を使用して検証し、[^0-9a-zA-Z\s\/\._-]+空の文字列に置き換えて、検索文字列内のあらゆる種類の特殊文字を削除することです。

私の問題は、一部のファイルと説明に & や $ などの特殊文字が含まれていることです。特殊文字を許可しないと、検索精度が低下します。これを行うより効率的な方法はありますか?

0 投票する
1 に答える
346 参照

c++ - search-ms: または search: プロトコルを使用して検索結果を IShellItem として取得する

Windows でグローバル ファイル検索結果を取得しようとしていますが、Windows Search のドキュメントは信じられないほど複雑であり、そのような単純な機能のために SQL を扱いたくありません。アプリケーションで結果アイテムを処理できるように実行search:query=%sした後、検索結果を Windows エクスプローラーに表示することはできますか?IShellFolderIShellItem

0 投票する
3 に答える
1497 参照

c# - ファイルの内容の単語/部分文字列の *一部* に対する Windows 検索クエリ

Windows Search SQL 構文を使用してプログラムで Windows Search インデックスをクエリしようとしています。

以下の検索クエリを使用して、C# winforms アプリケーションでファイルの内容を検索できます。

問題:ただし、このクエリを使用してファイル コンテンツ内の単語の一部を検索することはできません。

例: ファイル (.txt ファイルなど) に "abcd" というテキストが含まれている場合、 を検索するとFREETEXT('ab')、そのファイルは表示されません。

私は使用してみました:

  • FREETEXT('ab')
  • FREETEXT('*ab*')
  • FREETEXT('\"ab\"')
  • FREETEXT('\"*ab*\"')
  • FREETEXT('*\"ab\"*')
  • FREETEXT('ab*')
  • FREETEXT('\"*ab*\"')
  • FREETEXT('\"ab\"*')

CONTAINSの代わりに上記の組み合わせを使用してみましたFREETEXT

Windows検索でab直接検索すると、テキストを持つファイルが表示されます

このクエリを変更して、ファイルの内容の単語の一部を検索するにはどうすればよいですか? 助けてください!

0 投票する
0 に答える
578 参照

c# - Windows ファイル エクスプローラーの検索ボックスで %UserName% が機能しない

フォルダー名の一部にユーザー名が含まれるネットワーク ドライブ上のフォルダーを持つユーザーがいます。

この検索を機能するように変更するにはどうすればよいですか? kind:=フォルダ %UserName%

注: 以下は機能しますが、機能するには %username% を使用できる必要があります。

kind:=フォルダ jsmith

それがうまくいかない場合は、保存された検索を jsmith のメモ帳で編集し、「System.Windows.Forms.SystemInformation.UserName Kind:=folder」のような検索と置換を行うことはできますか?

実際、これを使用する .search-ms ファイルを作成することが私の目標です。

ありがとう!

0 投票する
1 に答える
671 参照

c# - マシン名を指定すると、自分のマシンで SystemIndex を照会できません

リモートマシンに接続してインデックス作成ステータスを照会する簡単なプログラムを作成しようとしています。

これが私のマシンでそれを行うコードです。これは正常に動作します。

ただし、の代わりに呼び出すGetCatalogと、"mycomputername.SystemIndex""SystemIndex"

タイプ 'System.Runtime.InteropServices.COMException' の未処理の例外が IndexStatus.exe で発生しました

追加情報: HRESULT からの例外: 0x80042103

ここに画像の説明を入力

Visual Studio 2015 は、Windows 8.1 で管理者権限で実行されています。ターゲット コンピューターは主に Windows 7 システムであり、プログラムは主に Windows 10 システムから実行されます。ここからダウンロードした Microsoft Windows Search 3.X SDK の Microsoft.Search.Interop.dll を使用しています。何か関係がある場合に備えて、ファイアウォールをオフにしましたが、どうやらそうではありませんでした。

のような完全なナンセンスで関数を呼び出すと、同じ例外が発生することを確認しました"sdfd"。そして、私はこれを見つけまし

MSS_E_CATALOGNOTFOUND - 0x80042103 - (8451) WindowsSearchErrors.h

マシン名の代わりに「localhost」を使用しようとしましたが、役に立ちませんでした。

MSDNのドキュメントには次のように書かれています。

現在、Microsoft Windows デスクトップ サーチ (WDS) 3.0 は 1 つのカタログのみをサポートしており、SystemIndex という名前が付けられています。

これを理解する方法がわかりません。おそらく、メソッドは異なるマシンから選択することができませんか? もしそうなら、PsExec のようなものを使用する以外に、リモート カタログに接続してこれらのクエリを作成する方法はありますか?

Re Ben N の回答:これは私にとって深海になり始めていますが、恐れているというよりも魅了されています。:)いくつかの変更の後、あなたのコードは私のために働いた:

CSearchManagerClass manager = System.Runtime.InteropServices.Marshal.CreateWrapperOfType(comManager, typeof(CSearchManagerClass));Visual Studio 2015 ではコンパイルされず、次のエラーが発生します。

ここに画像の説明を入力 ここに画像の説明を入力

2 番目のエラーは、キャストを追加するだけで簡単に修正できました。

「相互運用タイプを埋め込むことはできません」というエラー メッセージについては、この質問を見つけました。推奨される解決策は 2 つあります。

  • Embed Interop TypesMicrosoft.Search.Interop 参照のプロパティを に変更しますFalse

  • に変更CSearchManagerClassCSearchManagerます。

最初の解決策はプログラムをコンパイルしますが、移植性に影響します。これで、プログラムは .dll がインストールされていないコンピューターでは実行されなくなります。2番目のソリューションはコンパイルされますが、スローされます

タイプ 'System.ArgumentException' の未処理の例外が mscorlib.dll で発生しました

追加情報: タイプは __ComObject であるか、__ComObject から派生したものである必要があります。

自分のマシンに対して実行すると、その正確な行に。

しかし、別の問題があり、これについては私にはわかりません。同僚のマシンに対して実行すると (私は彼のコンピューターの管理者であり、Visual Studio は管理者権限で実行されています)、取得しています

タイプ 'System.UnauthorizedAccessException' の未処理の例外が mscorlib.dll で発生しました

追加情報: CLSID {7D096C5F-AC08-4F1F-BEB7-5C22C517CE39} を持つリモート コンポーネントの COM クラス ファクトリをマシン computername から取得できませんでした。次のエラーが原因でした: 80070005 computername。

私は COM についてほとんど何も知らないので、これは少し怖いです。彼のコンピューターと私のコンピューターで DCOM が有効になっていることを確認しました。しかし、コンポーネント サービスで彼のコンピュータにアクセスしようとするここに画像の説明を入力と、DCOM Config がツリーに表示されません。また、ドメイン上の他のコンピューターでも同じことが起こります (すべてのワークステーションで管理者権限を持っていますが)。このブログは、それがファイアウォールの問題である可能性があることを示唆しています。

あなたの答えは両方とも間違いなく報奨金に値しますが、何か提案があれば、または何が起こっているのかを明らかにすることができれば、私は非常に感謝しています. うまくいかなくてもいいのですが、ここから少しでも多くの知識を吸収したいと思っています。

0 投票する
0 に答える
699 参照

python - Python を使用した Microsoft Search Index のクエリ

Windows Search Index で SQL クエリを実行する方法を探しています。

これは .NET または Powershell を使用して非常に簡単に実行できますが、何をしても Python で動作させることはできないようです。

PyODBC を使用して JET4 ドライバーに乗ってみましたが、大量のエラーが発生しました。次に、ADO 接続に win32con クライアントを使用してみましたが、うまくいきませんでした。

私はプロバイダーをいくつかの場所で提供されているとして、MSIDXS.1またはSearch.CollatorDSO提供されていると述べようとしましたが、EDB ファイルに直接アクセスしようとしましたが、うまくいきませんでした。

誰かがそうすることができたことがありますか、または何が問題なのか知っていますか?

参考までに、この操作を実行する Powershell および C# スクリプトのサンプルへのリンクを添付します。 -powershell - https://msdn.microsoft.com/en-us/library/windows/desktop/ff684395(v=vs.85).aspx

VB スクリプトを使用して、パラメーターとしてクエリを使用してアプローチすることもできますが、私にはかなり不自由に感じます...

編集:正しいDBに接続しているように見えますが、エラーが発生します:

私のコード:

エラー:

ありがとう!

0 投票する
1 に答える
147 参照

c# - Windows Search サービス: テキスト スニップの取得

Windows Search Service を使用して、ドキュメントのメタ データをクエリして取得しますItemName

snip of the textユーザーにコンテキストを表示できるように、見つかったテキストを取得する方法はありますか?

0 投票する
1 に答える
611 参照

powershell - ファイル内の Windows Search Indexed を検索する方法

Windows Search サービスによってインデックス付けされたファイルがあります。テキストファイル内の文字列を見つけることができる関数が必要です。PowerShell にスクリプトがありますが、うまくいきませんでした。

$word = "Hello"私たちが持っているファイルで問題なく動作する場合

ただし、次のようなスペースのない Hello がある場合はそうではありません。

$wordまた、"Hello World" などのフレーズも検索できません。

誰でもそれを修正する方法を知っていますか?