C#을 통해 실제로 윈도우 검색을 할 수 있습니까? (예 : '파이어'를 쓰고 '파이어 폭스'를 얻을 수 있습니다.) 하이라이트가있는 메뉴에서 비스타에서 찾을 수 있습니다.윈도우에서 하이라이트 검색하기 #
감사합니다 :)
C#을 통해 실제로 윈도우 검색을 할 수 있습니까? (예 : '파이어'를 쓰고 '파이어 폭스'를 얻을 수 있습니다.) 하이라이트가있는 메뉴에서 비스타에서 찾을 수 있습니다.윈도우에서 하이라이트 검색하기 #
감사합니다 :)
예, Windows 데스크톱 검색 (WDS) API에서 가능합니다. SDK이 필요합니다. 정확하게 리콜하면 .Net 어셈블리도 제공됩니다. 그런 다음 the documentation을보고 WDS 색인을 쿼리하는 방법을 알아보십시오.
OleDbConnection conn = new OleDbConnection(
"Data Source=(local);Initial Catalog=Search.CollatorDSO;Integrated Security=SSPI;User ID=<username>;Password=<password>");
OleDbDataReader rdr = null;
conn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT Top 5 System.ItemPathDisplay FROM SYSTEMINDEX", conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
rdr.Close();
conn.Close();
내가 잠시 다시 프로젝트에서이 사용
, 내가 사용하는 쿼리 문자열이 같은 것을 지어진 :CSearchManager SearchManager = new CSearchManager();
CSearchCatalogManager CatalogManager = SearchManager.GetCatalog("SystemIndex");
CSearchQueryHelper QueryHelper = CatalogManager.GetQueryHelper();
string connection_string = QueryHelper.ConnectionString;
는 그 다음을 수행 그것은 여기에 그들이 제공하는 C# 예제 매우 간단이야 간단한 파일 검색 :
QueryHelper.QueryWhereRestrictions = "AND scope='file:'";
QueryHelper.QuerySorting = "System.ItemNameDisplay ASC";
string sqlQuery = QueryHelper.GenerateSQLFromUserQuery(Filename);
설명서에서 필요한 결과를 얻을 수있는 쿼리를 작성하는 방법을 볼 수 있습니다.
이제 간단한 메모. Vista Start Search 복제본을 만들 수 있었지만 Vista가 시작 메뉴 링크 (% appdata % \ Microsoft \ Windows \ Start Menu & C : \ ProgramData \ Microsoft \ Windows)를 저장하는 장소에서 링크 파일을 먼저 검색하여이 작업을 수행했습니다. \ 시작 메뉴), 백그라운드에서 WDS 결과를 비동기 적으로로드하면 WDS에만 의존하는 것보다 검색 시작 동작이 더 잘 복제됩니다.
고마워 :) 나는 단지 필드가 궁금하다 : 사용자 ID =
윈도우 검색 검색 필드에 텍스트로 인덱스를 쿼리하여 결과를 달성하기 위해 인덱스를 사용하여 업데이트됩니다. 이 기능을 작동 시키려면 엔진이 결과를 매우 빠르게 리턴 할 수 있어야하며 조회에 매우 효율적인 콜렉션이 좋은 아이디어입니다.
검색 상자의 텍스트가 변경되면 해시 테이블을 쿼리합니다.
강조 표시 부분을 수행하는 방법을 알아 냈습니까? – anon