Zend公司:指数的产生和Zend_Search_Lucene中的利弊
-
19-09-2019 - |
题
我从来没有遇到像Zend的Lucene的搜索应用程序/类来之前,我一直询问我的数据库。
Zend_Search_Lucene的与操作 凭证作为原子对象 索引。甲文件分为 命名字段,字段中的内容 可以被搜索。
一个文件是由表示 的Zend_Search_Lucene_Document类,和 这个类的这个对象包含 的若干Zend_Search_Lucene_Field实例 代表的领域 文档。
要注意,任何重要的是 信息可以被添加到索引。 应用程序特定的信息或 元数据可以被存储在文档中 字段,以及后来与所检索的 搜索过程中的文档。
所以这基本上是说,我可以将此任何东西,包括数据库,这里的关键是搜索制作索引。
我试图把握也正是我应该存储在我的应用程序的索引,让我们的例子中,我们存储在数据库中的手机,一个厂家,型号 - ?我应该怎么分类的指标
如果我正在跟据用户的指标,我显然不会希望他们能公开展示的地址,我在这一切都解决了一起只是困惑,如果有已知的缺点,任何陷阱我应该而使用它知道。
解决方案
一个Lucene索引被存储在数据库外部。我将其存储在“数据”目录作为姐姐你的控制器,模型和视图。但是,你可以存储在任何地方;你只需要当你打开索引查询到指定路径。
这基本上是存储在数据库中的文件的冗余副本,你必须保持同步自己。这是缺点之一:你必须编写代码来填充根据对数据库的查询结果的Lucene索引。当您将数据添加到数据库中,你必须更新Lucene索引为好。
使用外部的全文索引解决方案的好处是,你可以减少你的RDBMS的工作量。要查找的文件,在执行使用Lucene的API进行搜索。结果应该包括含有主键值(作为文档的一部分,但没有必要使分析FT搜索)的字段。当你做一个Lucene搜索你得到本场回来,所以你可以看一下各行中的数据库中。
这是否有助于回答你的问题?
最近我在会上介绍MySQL的大学比较全文检索解决方案: http://forge.mysql.com/wiki/Practical_Full-Text_Search_in_MySQL
我也是在 http://www.SlideShare.net/billkarwin 发布我的幻灯片。