【问题标题】:Zend Lucene : index database data or not?Zend Lucene:索引数据库数据与否?
【发布时间】:2013-07-16 02:38:02
【问题描述】:

我将第一次尝试索引和 Zend Lucene 搜索,我想知道数据库中的数据是否应该被索引,考虑到性能。如果是什么时候(在什么情况下)?

我的第一个目标是索引文档 (pdf) 以进行搜索。

在我们开发的应用程序的通讯模块中,用户可以通过输入关键字来搜索通讯。 该应用程序搜索存储在数据库中的通信的主题和内容,现在,它还使用索引搜索通信所附文档的内容。

这样我必须在数据库和索引中搜索。

所以现在我想知道是否应该索引通信的主题和内容(例如:UnIndexed Lucene Field)?会更快吗?考虑到文档和通信的数量会迅速增加,索引也会增加。

有人有这方面的经验吗?

【问题讨论】:

    标签: database zend-framework search lucene indexing


    【解决方案1】:

    是的,引入您希望能够搜索的任何内容将是一个非常好的主意。您在搜索数据库和索引时遇到了一些问题。

    首先,性能会更差。与将所有可搜索内容放在一个位置相比,通常预期必须针对两个不同的来源进行搜索要慢得多。

    其次,合并和排序搜索结果往往会出现问题。如果您正在使用相关性分数排序(并且如果您正在搜索全文内容,您可能应该这样做),那么合并来自两个不同来源的结果就变得很困难。您最终可能会得到一个不太有用的排序,以及另一个性能损失。

    特别是如果您只是索引(而不是存储)您正在考虑添加到索引的内容,在我看来,几乎没有理由不这样做。能够在索引中搜索您需要的任何内容将更加强大和快速。

    【讨论】:

    • 感谢您的回答!
    • 感谢您的回答!我必须为此努力!对于我的问题中描述的搜索,我还需要在(很多)依赖表中获取信息,所以我不确定是否可以在不执行任何数据库请求的情况下存储/索引所有相关信息......
    • 最典型的模式是对需要搜索的数据进行索引,一旦找到相关记录,就从数据库中获取完整的数据集。
    • 是的,这就是我正在考虑的,但我需要依赖表中的数据进行搜索。所以,我必须好好思考如何用所有这些数据来组织索引。 (例如:搜索链接到一个“产品”的所有通信 - 通信和“产品”之间的“多对多”关系存储在依赖表中)
    • 对,我不太确定。这种逻辑的实现取决于您的要求。我通过在索引时将所有相关内容放入一个字段中实现了类似的情况(即,如果我想查找通信,只需将每个链接产品中的所有可搜索内容依次放入一个大“产品”字段),这使得以非常松散的结构方式搜索它们。您还可以索引不同类型的文档,搜索每个文档并实现逻辑以在从数据库中获取它们时加入它们。归结为您的应用程序的需求。
    猜你喜欢
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2011-07-13
    相关资源
    最近更新 更多