索引 |
准备工作
定制文件类型 快捷图标 文件识别 文件描述 首选程序 额外属性 创建索引 添加数据 查询数据 |
操作练习:文件类型, 属性,索引和查询
本篇文档主要用于展示 属性,查询,索引和定制文件类型。我们将会创建一个数据库来记录我们的DVD库。
准备工作
首先确定适合需要的文件类型和属性,最初,我想使用一个书签文件来链接到电影的网络电影数据库页面,但是Haiku暂时没有类似于“BeOS”的支持“书签”的NetPositive浏览器,所以我使用了下面的方法:该文件是一个JPEG格式图像,并且作为电影的封面。
为此,我们需要添加一些属性。那么我们必须决定将来是否对其进行查询(然后,把它添加到索引),如果这样做,它是什么类型的属性,数字(int, float)的评比效果将会与文本具有很大不同(< ,=,和> 对比 is,contains,和starts with)。
我希望可以把下面的属性用于DVD文件:
- Movie title(电影标题)
- Genre (流派)
- URL to e.g. IMdB(网站)
- Director/Cast (导演/演员)
- Plot (策划)
- My rating from 1 to 10 (星级)
- 安排我的书架,例如 A2,B3,这样我可以在现实生活中找出 DVD。
- 如果这样,谁借走了磁盘...
定制文件类型
打开文件类型首选项,然后点击位于左边分级列表之下的 按钮。之后打开一个小对话框,然后指定新的文件类型所属的MIME组。当然您可以新建一个MIME组。我们把文件类型放置在 “applications” 组,把 “Internal Name” 设置为 DVDdb 。

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

快捷图标
双击快捷图标,将会打开 Icon-O-Matic 来为您的文件类型设计一个快捷图标。您也可以使用其他文件类型的图标,也可以将其稍作修改之后再使用。
文件识别
您也可以添加文件后缀作为扩展名来识别文件类型,例如,.txt,.jpg,.mp3。如果是在其他的没有MIME类型的系统上处理文件,后缀将会非常有用,但是在我们的示例中不需要这样做。
文件描述
- 类型名 - 它主要出现在Tracker窗口中的属性菜单和文件的“kind”属性中。
- 文件描述 - 更加详细的描述。
首选程序
快捷菜单中显示了所有可用于处理该类型文件的程序的列表,从该列表中,您可以选择打开该类型文件的首选程序,并且在双击文件时,该程序将会自动启动。
打开一个对话框,您可以选择打开该类型文件的首选应用程序。在本示例中,我们选择 ShowImage 来显示DVD的封面。 | ||
打开一个对话框,你可以选择已经具有首选程序的文件,使两者使用相同的首选程序。 |
额外属性
在这里,我们输入在准备工作中决定的所有定制属性。点击
按钮打开一个面板:
属性名 - 出现在Tracker窗口顶部纵列中。
内部名称 - 用于索引和查询属性。
- Type - 定义了属性可以容纳的值,这样它才可以实现查询。
- 用于普通文本
- 用于二进制数据: 0 或 1
- : ± 255
- : ± 65,535
- : ± 4,294,967,295
- : ± 18,446,744,073,709,551,615
用于不同范围的整形数据:
- 用于单精度的浮点型数据
- 用于双精度的浮点型数据
- 用于时间和日期的格式
- Visible - 该复选框用于决定该属性在Tracker窗口中是否可见。由于Tracker将会是我们的DVD数据库界面,所以需要通过下面的选项来定义它的外观:
- - 使用 "Default"。将来可能会有更多可用的选项,例如, 星级评定等。
- - 用于确定在Tracker窗口中,是否可以进行属性的编辑。
- - 在Tracker窗口中默认的属性列的宽度。
- - 属性可以显示为居左,居中或者居右。
现在,输入我们的属性的所有信息:
内部名称 | 属性类型 | 索引 | 描述 |
---|---|---|---|
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 (借出) |
创建索引
在开始向我们的小的DVD数据库中输入数据之前, 我们需要为我们的索引添加确定的属性。只有进行了索引了的属性才可以使用Haiku的快速查询。
所以,我们将要查找什么呢?我们不需要问“在我的B4货架上的是什么呢?”或者“在网络电影库或者电影策划中包含 ‘pope-shenooda’ 吗?”
那么,我们选取了下面的属性:
内部名称 | 属性类型 |
---|---|
DVDdb:title | text |
DVDdb:genre | text |
DVDdb:cast | text |
DVDdb:rating | int-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”类型。
添加数据
现在一切已经就绪,我们可以在数据库中加入一些数据。
由于我们的基本文件时封面图片,我们可以访问一些网络资源如 IMdb,查找首个电影,然后将其封面或者电影海报保存到新建的文件夹,以它作为 DVDdb 文件的保存位置。
打开该文件夹,我们看到在Tracker窗口中有一个JPEG图像。右键点击图像,使用 Filetype Addon 将其文件类型改为 application/DVDdb 。更多相关信息,请参阅文件类型文档。
接下来,我们在 Tracker 窗口的
菜单中激活所有的 DVDdb 属性,根据我们的喜好对其进行排序:
通过点击仍为空的属性(或者按下 ALT E组合键),我们进入编辑模式,填写每个属性。利用 TAB 和 SHIFT TAB 快捷键,您可以在各个属性之间快速切换。
在我们的示例中,我们总是先下载一个JPEG封面,然后将其类型改为:applications/DVDdb 。还有另外的方法来创建此类型的文件,只需要复制一个该类型的空文件到 /boot/home/config/settings/Tracker/Tracker New Templates ,然后将其命名为 DVDdb 即可 。
右键点击Tracker窗口,您将会在
下面的发现除了默认的 “New folder” 外的新元素。
查询数据
几个小时的辛苦工作之后,我们有了一个不错的小型数据库,您可以在这里查询具有7星级排名的克里斯蒂娜·里奇的电影了。
您可以为特别文件类型的查询结果制定一个有效的属性排列方式。
打开包含DVDdb文件的文件夹,然后依据您希望的查询结果排布方式对相应属性进行排列。通过 复制该属性布局。
打开 /boot/home/config/settings/Tracker/DefaultQueryTemplates,新建一个文件夹,将其命名为 group_filetype,在示例中,我们使用 “applications_DVDdb”。
打开新建的文件夹,通过
粘贴属性布局。Voilà: