Bagikan melalui


Format File Pencarian Tersimpan

Di Windows Vista dan yang lebih baru, pengguna dapat menyimpan pencarian sebagai Folder Pencarian yang dihasilkan oleh file XML yang menyimpan kueri dalam formulir yang dapat digunakan oleh subsistem pencarian Windows. Topik ini menjelaskan format file (*.search-ms) dan menyertakan bagian berikut:

Gambaran Umum Pencarian Tersimpan

Pengguna dapat menyimpan kueri pencarian sebagai Folder Pencarian, folder virtual yang ditampilkan di Windows Explorer di bawah folder Pencarian. Membuka Folder Pencarian menjalankan pencarian tersimpan dan menampilkan hasil up-to-date. File pencarian tersimpan menyimpan kueri dalam format yang dapat ditindakl Windows Search, menentukan apa yang harus dicari, tempat mencari, dan cara menyajikan hasilnya.

Pencarian tersimpan dihasilkan dari file XML (*.search-ms) di folder %userprofile%\Searches. Data dibagi menjadi tiga elemen utama dalam file XML:

  • <viewInfo> menentukan informasi presentasi
  • < > kueri menentukan (informasi kueri pencarian
  • <properti> menentukan properti file *.search-ms itu sendiri

Contoh berikut menunjukkan struktur tingkat tinggi dari file pencarian tersimpan.

<?xml version="1.0"?>
<persistedQuery version="1.0">

    <viewInfo ...>
        ...
    </viewInfo>

    <query>
        ...
    </query>

    <properties>
        ...
    </properties>

</persistedQuery>

<viewInfo> Element

Elemen> viewInfo <menentukan bagaimana hasilnya disajikan kepada pengguna akhir. Contoh berikut menunjukkan struktur elemen.

...
    <viewInfo viewMode=""
              iconSize=""
              stackIconSize=""
              autoListFlags=""
              folderFlags=""
              taskFlags=""
              displayName="">

        <visibleColumns>
            <column viewField=""/>
        </visibleColumns>

        <frequentlyUsedColumns>
            <column viewField= ""/>
        </frequentlyUsedColumns>

        <columnChooserColumns >
            <column viewField=""/>
        </columnChooserColumns >

        <groupBy viewField=""
                 direction=""/>

        <stackList>
            <stack viewField=""/>
        </stackList>

        <sortList>
            <sort viewField=""
                  direction=""/>
        </sortList>
    </viewInfo>
...

<atribut> viewInfo

Tabel berikut menjelaskan atribut elemen> viewInfo <.

Atribut Deskripsi Nilai
viewMode Menentukan tampilan folder. Detail | Ikon | Ubin
iconSize Mengontrol ukuran default ikon dan gambar mini untuk item saat bukan tumpukan. Bilangan bulat antara 16 dan 256
stackIconSize Hanya untuk penggunaan internal. Jangan gunakan. N/a
displayName Hanya untuk penggunaan internal. Jangan gunakan. N/a
autoListFlags Hanya untuk penggunaan internal. Jangan gunakan. N/a
folderFlags Hanya untuk penggunaan internal. Jangan gunakan. N/a
taskFlags Hanya untuk penggunaan internal. Jangan gunakan. N/a

<melihat Elemen Anak> Info

Elemen turunan dari elemen <viewInfo> menentukan kolom mana yang muncul di hasil pencarian Windows Explorer dan bagaimana hasilnya dikelompokkan dan diurutkan. Setiap elemen anak berisi sekumpulan kolom yang diurutkan, diidentifikasi dengan nama kanonis properti sistem (misalnya, System.DisplayName). Jika tidak ditentukan dalam file pencarian tersimpan, hasil pencarian disajikan dengan sekumpulan kolom default yang sesuai untuk jenis file yang ditampilkan.

Elemen Deskripsi Nilai
visibleColumns Menentukan daftar kolom yang diurutkan untuk muncul dalam tampilan hasil. Pengguna dapat mengubah daftar ini. Properti sistem apa pun.
frequentlyUsedColumns Hanya untuk penggunaan internal. Jangan gunakan. N/a
columnChooserColumns Hanya untuk penggunaan internal. Jangan gunakan. N/a
groupBy Menentukan properti sistem tunggal untuk mengelompokkan hasilnya. Pengguna dapat mengubah nilai ini. Properti sistem apa pun.
sortList Menentukan daftar kolom yang diurutkan untuk mengurutkan hasilnya. Hingga empat properti sistem. Pengguna dapat mengubah daftar ini.
stackList Hanya untuk penggunaan internal. Jangan gunakan. N/a

<kueri> Elemen

Elemen> kueri <menentukan atribut yang menentukan bagaimana hasilnya dikueri. Contoh berikut menunjukkan struktur elemen.

...
    <query>
        <providers>
            <provider clsid=""/>    <!-- Do not use -->
        </providers>

        <subQueries>
            <subQuery path=""/>           <!-- Do not use -->
            <subQuery knownSearch=""/>    <!-- Do not use -->
        </subQueries>

        <scope>
            <include path=""        nonRecursive=""/>   <!-- [path of location to include] -->
            <include knownFolder="" nonRecursive=""/>   <!-- Known folder ID  -->
            <exclude path=""        nonRecursive=""/>   <!-- [path of location to exclude] -->
            <exclude knownFolder="" nonRecursive=""/>   <!-- Known folder ID  -->
        </scope>

        <kindList>
            <kind name=""/>     <!-- Kind value -->
        </kindList>

        <conditions>
            <condition type="" ...>     <!-- andCondition | orCondition | notCondition | leafCondition -->
                <attributes>
                    <attribute attributeID="" .../> <!-- Do not use -->
                </attributes>
            </condition>
        </conditions>
    </query>
...

kueri <> Elemen Turunan

Tabel berikut ini menjelaskan elemen turunan dari lingkup <> elemen.

Elemen Deskripsi Nilai
Penyedia Hanya untuk penggunaan internal. Jangan gunakan. N/a
subKueri Hanya untuk penggunaan internal. Jangan gunakan. N/a
Ruang lingkup Mengidentifikasi lokasi yang akan disertakan atau dikecualikan dalam pencarian. Jalur atau ID folder diketahui lokasi yang akan disertakan atau dikecualikan. Elemen ini juga dapat menentukan apakah pencarian harus menyertakan/mengecualikan jalur anak (pencarian dangkal atau mendalam).
kindList Mengidentifikasi jenis file yang akan dicari. Nilai System.Kind apa pun.
Kondisi Menentukan aturan untuk memfilter hasil. Misalnya, hasilnya dapat dibatasi pada email yang dikirim oleh atau ke orang tertentu. andCondition, orCondition, notCondition, leafCondition.

> lingkup <Elemen

Elemen> cakupan <mengidentifikasi lokasi yang akan disertakan atau dikecualikan dari pencarian. Elemen> cakupan <harus berisi setidaknya satu <termasuk elemen turunan> ada dan nol atau lebih <mengecualikan elemen>. Lokasi dapat ditentukan sebagai jalur (variabel lingkungan didukung) atau sebagai pengidentifikasi folder diketahui. Selain itu, masing-masing lokasi ini dapat ditentukan untuk dicari secara mendalam atau dangkal dengan mengatur nonRecursive ke "true" atau "false" (defaultnya rekursif). Bagian dari daftar lokasi yang disertakan dapat dikecualikan dengan menentukan elemen pengecualian.

Berikut ini menunjukkan elemen> cakupan <yang akan mencari folder khusus dokumen, tetapi bukan anak-anaknya, volume "E:" dan anak-anaknya, tetapi bukan direktori "E:\windows" atau salah satu anaknya:

...
    <query>
        ...
        <scope>
            <include knownFolder="{FDD39AD0-238F-46AF-ADB4-6C85480369C7}" nonRecursive="true"/>
            <include path="E:\"/>
            <exclude path="E:\Windows" nonRecursive="false"/>
        </scope>
        ...
    </query>
...

<kindList> Element

Elemen-elemen ini menentukan persatuan "jenis" item yang akan muncul di pustaka. Nilai yang valid adalah:

  • kalender
  • komunikasi
  • kontak
  • surat
  • Email
  • memberi makan
  • map
  • permainan
  • instantmessage
  • jurnal
  • tautan
  • film
  • musik
  • nota
  • gambaran
  • rencana
  • recordedtv
  • searchfolder
  • tugas
  • video
  • webhistory
  • benda
  • lain

<kondisi> Element

Kondisi adalah filter yang hasil pencariannya dibandingkan. Misalnya, Anda dapat memfilter hasil yang memenuhi kriteria tertentu, seperti nama penulis atau ukuran file. Kumpulan kondisi dibangun ke dalam pohon kondisi tunggal dengan cabang AND, OR, dan NOT logis.

Contoh berikut menunjukkan struktur elemen> kondisi <.

...
    <query>
        ...
        <conditions>
            <condition type="" ...>
                <attributes>
                    <attribute attributeID="" .../>
                </attributes>
            </condition>
        </conditions>
    </query>
...

Jenis kondisi bisa menjadi salah satu dari yang berikut ini:

Jenis Deskripsi Atribut yang Tersedia
andCondition Konjunsi dari dua kondisi anak atau lebih N/a
orCondition Disjunksi dari dua kondisi anak lagi N/a
notCondition Negasi kondisi anak N/a
leafCondition Membandingkan properti dengan nilai properti, propertyType, operator, nilai, valuetype

Atribut elemen <leafCondition> mengidentifikasi properti dan nilai yang difilter hasilnya.

Contoh: <kondisi> Element

Contoh berikut memfilter hasil untuk semua item yang belum dibaca yang ditulis oleh John. Artinya, properti System.IsRead salah dan string "john" muncul di properti System.Author atau System.ItemAuthors.

...
    <query>
        ...
        <conditions>

            <condition type="andCondition">

                <condition type="leafCondition"
                           property="System.IsRead"
                           operator="eq"
                           value="FALSE"/>

                <condition type="orCondition">

                    <condition type="leafCondition"
                               property="System.Author"
                               propertyType="string"
                               operator="wordmatch"
                               value="John"
                               valueType="System.StructuredQueryType.String"/>

                    <condition type="leafCondition"
                               property="System.ItemAuthors"
                               propertyType="string"
                               operator="wordmatch"
                               value="John"
                               valueType="System.StructuredQueryType.String"/>

                </condition>

            </condition>

        </conditions>

    </query>
...

properti <> Element

Properti <elemen> menjelaskan properti pencarian tersimpan itu sendiri. File pencarian tersimpan mendukung empat properti: penulis <>, <jenis>, deskripsi <>, dan tag <>. Ini hanya untuk penggunaan internal.

Spesifikasi Lengkap Format File search-ms

Berikut ini adalah contoh XML lengkap untuk file pencarian tersimpan.

<?xml version="1.0"?>

<persistedQuery version="1.0">

    <!-- The viewInfo section defines how results are displayed to the end user -->
    <viewInfo viewMode=""       <!-- details | icons | tiles -->
              iconSize=""       <!-- Integer -->
              stackIconSize=""  <!-- Do not use -->
              displayName=""    <!-- Do not use -->
              folderFlags=""    <!-- Do not use -->
              taskFlags=""      <!-- Do not use -->
              autoListFlags=""> <!-- Do not use -->

        <visibleColumns>
            <column viewField=""/>  <!-- System.[propertyname] -->
        </visibleColumns>

        <frequentlyUsedColumns>
            <column viewField= ""/> <!-- Do not use -->
        </frequentlyUsedColumns>

        <columnChooserColumns >
            <column viewField=""/>  <!-- Do not use -->
        </columnChooserColumns >

        <groupBy viewField=""       <!-- System.[propertyname] -->
                 direction=""/>     <!-- ascending | descending -->

        <stackList>
            <stack viewField=""/>   <!-- Do not use -->
        </stackList>

        <sortList>
            <sort viewField=""      <!-- System.[propertyname] -->
                  direction=""/>    <!-- ascending | descending -->
        </sortList>
    </viewInfo>

    <!-- The query section defines what gets searched (locations, file kinds) -->
    <query>
        <providers>
            <provider clsid=""/>          <!-- Do not use -->
        </providers>

        <subQueries>
            <subQuery path=""/>           <!-- Do not use -->
            <subQuery knownSearch=""/>    <!-- Do not use -->
        </subQueries>

        <scope>
            <include path=""        nonRecursive=""/>   <!-- [path of location to include] -->
            <include knownFolder="" nonRecursive=""/>   <!-- Known folder ID  -->
            <exclude path=""        nonRecursive=""/>   <!-- [path of location to exclude] -->
            <exclude knownFolder="" nonRecursive=""/>   <!-- Known folder ID  -->
        </scope>

        <kindList>
            <kind name=""/>     <!-- Kind value -->
        </kindList>

        <conditions>
            <condition type="" ...>     <!-- andCondition | orCondition | notCondition | leafCondition -->
                <attributes>
                    <attribute attributeID="" .../> <!-- Do not use -->
                </attributes>
            </condition>
        </conditions>
    </query>

    <!-- The properties section identifies properties of the saved search file itself. -->
    <properties>
        ...             <!-- Do not use -->
    </properties>

</persistedQuery>

Contoh Pencarian Tersimpan

Berikut ini adalah contoh file *.search-ms.

Documents.search-ms Terbaru

<?xml version="1.0"?>
<persistedQuery version="1.0">
    <viewInfo viewMode="details" iconSize="16">
        <sortList>
            <sort viewField="System.DateModified" direction="descending"/>
        </sortList>
    </viewInfo>

    <query>
        <conditions>
            <condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime" property="System.DateModified" operator="imp" value="R00UUUUUUUUZZXD-30NU" propertyType="wstr" />
        </conditions>
        <kindList>
            <kind name="Document"/>
        </kindList>
        <subQueries>
            <subQuery knownSearch="{4f800859-0bd6-4e63-bbdc-38d3b616ca48}"/>
        </subQueries>
    </query>
</persistedQuery>

Music.search-ms Terbaru

<?xml version="1.0"?>
<persistedQuery version="1.0">
    <viewInfo viewMode="details" iconSize="16">
        <sortList>
            <sort viewField="System.DateModified" direction="descending"/>
        </sortList>
    </viewInfo>

    <query>
        <conditions>
            <condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime" property="System.DateModified" operator="imp" value="R00UUUUUUUUW-1WNNU" propertyType="wstr"/>
        </conditions>
        <kindList>
            <kind name="Music"/>
        </kindList>
        <subQueries>
            <subQuery knownSearch="{4f800859-0bd6-4e63-bbdc-38d3b616ca48}"/>
        </subQueries>
    </query>
</persistedQuery>

Baru-baru ini Dibagikan oleh Me.search-ms

<?xml version="1.0"?>
<persistedQuery version="1.0">
    <viewInfo viewMode="details" iconSize="16">
        <visibleColumns>
            <column viewField="System.ItemNameDisplay"/>
            <column viewField="System.DateModified"/>
            <column viewField="System.Keywords"/>
            <column viewField="System.SharedWith"/>
            <column viewField="System.ItemFolderPathDisplayNarrow"/>
        </visibleColumns>
        <frequentlyUsedColumns>
            <column viewField="System.Author"/>
            <column viewField="System.Kind"/>
            <column viewField="System.Size"/>
            <column viewField="System.Title"/>
            <column viewField="System.Rating"/>
        </frequentlyUsedColumns>
        <sortList>
            <sort viewField="System.SharedWith" direction="descending"/>
        </sortList>
    </viewInfo>

    <query>
        <conditions>
            <condition type="andCondition">
                <condition type="leafCondition" property="System.IsShared" operator="eq" value="true"/>
                <condition type="leafCondition" property="System.FileOwner" operator="eq" value="[Me]"/>
            </condition>
        </conditions>
        <kindList>
            <kind name="item"/>
        </kindList>
        <scope>
            <include knownFolder="{5E6C858F-0E22-4760-9AFE-EA3317B67173}"/>
            <include knownFolder="{DFDF76A2-C82A-4D63-906A-5644AC457385}"/>
        </scope>
    </query>
</persistedQuery>