本节的翻译还未完成。在未完成之前,所有的未完成部分都将使用英语原文。
索引
准备工作
定制文件类型
快捷图标
文件识别
文件描述
首选程序
额外属性
创建索引
添加数据
查询数据

操作练习:文件类型, 属性,索引和查询

本篇文档主要用于展示 属性查询索引和定制文件类型。我们将会创建一个数据库来记录我们的DVD库。

index 准备工作

首先确定能够满足我们需要的文件类型和属性,最初,我想使用一个书签文件来链接到电影的网络电影数据库页面,但是Haiku暂时没有类似于“BeOS”的支持“书签”的NetPositive浏览器,所以我使用了下面的方法:该文件是一个JPEG格式图像,并且作为电影的封面。
现在有了 WebPositive,Haiku 有课可以使用书签文件的浏览器,所以您可以使用书签文件来替换图像来作为我们数据库文件的基本文件类型。
总之,我们为这些文件添加一些属性。那么接下来我们需要确定是否会再次进行查询(之后我们将其添加到索引),如果这样,那么需要使用何种类型的属性。数值 (int, float) 不同于文本,可以进行计算 (</=/> vs. is/contains/starts with)。

我希望可以把下面的属性用于DVD文件:

index 定制文件类型

打开文件类型首选项,然后点击位于左边分级列表之下的Add... 按钮。之后打开一个小对话框,然后指定新的文件类型所属的MIME组。当然您可以新建一个MIME组。我们把文件类型放置在 “applications” 组,把 “Internal Name” 设置为 DVDdb

filetypes-new-file-type.png

现在,打开了您新建的DVDdb文件类型的面板:

filetypes-dvddb.png

index 快捷图标

双击快捷图标,将会打开 Icon-O-Matic 来为您的文件类型设计一个快捷图标。您也可以使用其他文件类型的图标,也可以将其稍作修改之后再使用。

index 文件识别

您也可以添加文件后缀作为扩展名来识别文件类型,例如,.txt,.jpg,.mp3。如果是在其他的没有MIME类型的系统上处理文件,后缀将会非常有用,但是在我们的示例中不需要这样做。

index 文件描述

index 首选程序

快捷菜单中显示了所有可用于处理该类型文件的程序的列表,从该列表中,您可以选择打开该类型文件的首选程序,并且在双击文件时,该程序将会自动启动。

Select... 打开一个对话框,您可以选择打开该类型文件的首选应用程序。在本示例中,我们选择 ShowImage 来显示DVD的封面。
Same as... 打开一个对话框,你可以选择已经具有首选程序的文件,使两者使用相同的首选程序。

index 额外属性

在这里,我们输入在准备工作中决定的所有定制属性。点击 Add... 按钮打开一个面板用以输入新属性所需要的所有数据。您可以通过双击编辑已有属性。

filetype-extra-attribute.png

现在,输入我们的属性的所有信息:

内部名称属性类型索引描述
DVDdb:title text yes Movie title(电影标题)
DVDdb:genre text yes Genre (流派)
DVDdb:url text no URL (网站)
DVDdb:cast text yes Director/Cast (导演/演员)
DVDdb:plot text no Plot (策划)
DVDdb:rating int-32 yes Rating 1 to 10 (星级评价)
DVDdb:coord text no Shelf (货架)
DVDdb:lent text yes Lent to (借出)

index 创建索引

在开始向我们的小的DVD数据库中输入数据之前, 我们需要为我们的索引添加确定的属性。只有进行了索引了的属性才可以使用Haiku的快速查询
所以,我们将要查找什么呢?我们不需要问“在我的B4货架上的是什么呢?”或者“在网络电影库或者电影策划中包含 ‘pope-shenooda’ 吗?”

那么,我们选取了下面的属性:

内部名称属性类型
DVDdb:titletext
DVDdb:genretext
DVDdb:casttext
DVDdb:ratingint-32

为了进行索引,我们打开终端,然后依次添加属性:

mkindex -t string DVDdb:title
mkindex -t string DVDdb:genre
mkindex -t string DVDdb:cast
mkindex -t int DVDdb:rating

-t 参数选项定义了属性的类型,除了 rating 属性是“int”型数字之外,其他的属性都是“string”类型。

index 添加数据

现在一切已经就绪,我们可以在数据库中加入一些数据。
由于我们的基本文件时封面图片,我们可以访问一些网络资源如 IMdb,查找首个电影,然后将其封面或者电影海报保存到新建的文件夹,以它作为 DVDdb 文件的保存位置。

打开该文件夹,我们看到在Tracker窗口中有一个JPEG图像。右键点击图像,使用 Filetype Addon 将其文件类型改为 application/DVDdb 。更多相关信息,请参阅文件类型文档。

接下来,我们在 Tracker 窗口的 Attributes 菜单中激活所有的 DVDdb 属性,根据我们的喜好对其进行排序:

filetypes-dvddb-empty.png

通过点击仍为空的属性(或者按下 ALT E组合键),我们进入编辑模式,填写每个属性。利用 TABSHIFT TAB 快捷键,您可以在各个属性之间快速切换。

在我们的示例中,我们总是先下载一个JPEG封面,然后将其类型改为:applications/DVDdb 。还有另外的方法来创建此类型的文件,只需要复制一个该类型的空文件到 /boot/home/config/settings/Tracker/Tracker New Templates ,然后将其命名为 DVDdb 即可 。

右键点击Tracker窗口,您将会在 New... 下面的发现除了默认的 “New folder” 外的新元素。

index 查询数据

几个小时的辛苦工作之后,我们有了一个不错的小型数据库,您可以在这里查询具有7星级排名的克里斯蒂娜·里奇的电影了。

您可以为特别文件类型的查询结果制定一个有效的属性排列方式。
打开包含DVDdb文件的文件夹,然后依据您希望的查询结果排布方式对相应属性进行排列。通过 Attributes | Copy Layout 复制该属性布局。

Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores; in our case "application_DVDdb".

打开新建的文件夹,通过 Attributes | Paste Layout 粘贴属性布局。Voilà:

query-dvddb.png