我从来没有遇到像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 发布我的幻灯片。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top