Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Zend Lucene:是否索引数据库数据?_Database_Zend Framework_Search_Lucene_Indexing - Fatal编程技术网

Database Zend Lucene:是否索引数据库数据?

Database Zend Lucene:是否索引数据库数据?,database,zend-framework,search,lucene,indexing,Database,Zend Framework,Search,Lucene,Indexing,我将第一次尝试索引和Zend Lucene搜索,考虑到性能,我想知道数据库中的数据是否应该被索引。如果是,何时(在何种情况下) 我的第一个目标是索引要搜索的文档(pdf) 在我们开发的应用程序的通信模块中,用户可以通过输入关键字来搜索通信。 该应用程序搜索存储在数据库中的通信主题和内容,现在,通过索引,它还搜索通信所附文档的内容 这样我就必须在数据库和索引中进行搜索 所以现在我想知道我是否应该为通信的主题和内容(例如:未索引的Lucene字段)编制索引?会更快吗?考虑到文件和通信的数量将迅速增加

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

我的第一个目标是索引要搜索的文档(pdf)

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

这样我就必须在数据库和索引中进行搜索

所以现在我想知道我是否应该为通信的主题和内容(例如:未索引的Lucene字段)编制索引?会更快吗?考虑到文件和通信的数量将迅速增加,因此索引也将迅速增加


有人对此有经验吗?

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

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

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


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

谢谢您的回答!谢谢你的回答!我必须在这方面努力!对于我问题中描述的搜索,我还需要在(许多)依赖表中获取信息,因此我不确定是否可以在不执行任何DB请求的情况下存储/索引所有相关信息…最典型的模式是索引需要搜索的数据,一旦找到相关记录,从数据库中获取完整的数据集。是的,这是我正在考虑的,但是我需要从依赖表中获取数据来进行搜索。因此,我必须好好思考如何用这些数据组织索引。(例如:搜索链接到一个“产品”的所有通信-通信和“产品”之间的“多对多”关系存储在一个依赖表中)对,我不太确定。这种逻辑的实现取决于您的需求。我实现了类似的情况,在索引时将所有相关内容扔到一个字段中(即,如果我想查找通信,只需将每个链接生产的所有可搜索内容按顺序扔到一个大的“生产”字段中),这样就可以以一种非常松散的结构方式对其进行搜索。您还可以索引不同类型的文档,搜索每种类型的文档,并实现逻辑,以便在从数据库获取时将它们连接起来。归结到应用程序的需要。