zend-framework - 什么是更好的 ?一大片田地还是许多小田地?

标签 zend-framework lucene zend-search-lucene

我正在编写一个基于 Zend Search Lucène 的搜索引擎。

我的对象有许多不同的字段(10 种文本类型),我想知道哪种方式最好。 (所有字段都未存储,只是索引,我不需要恢复它们。)

一个大字段(许多小字段的串联):

$content = $textfield1 . $textfield2 . $textfield3 . $textfield4 ...
Zend_Search_Lucene_Field::unStored("content", $content);

或者

许多小田地:

Zend_Search_Lucene_Field::unStored("content", $textfield1);
Zend_Search_Lucene_Field::unStored("content2", $textfield2);
Zend_Search_Lucene_Field::unStored("content3", $textfield3);
....
....

每个字段可能包含大量文本(大约 500 个单词或更多)。

最佳答案

如果这些字段的内容相似,那么从性能角度来看,拥有一个字段比多个字段更好(假设大多数时候您想要搜索所有字段)。

Lucene 将字段术语存储在一个大字典中,以 {field}{term} 形式串联,因此如果您不需要单独处理字段,最好将它们放入一个包中。这样,您将拥有更小的字典(特别是,如果这些字段的术语相似)和搜索过程中更少的磁盘查找(扫描的帖子列表的总和将保持大致相同)。

关于zend-framework - 什么是更好的 ?一大片田地还是许多小田地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9213092/

相关文章:

zend-framework - 将 windows 上的 Zend 项目放到 Ubuntu Lamp 上时应该配置什么?

zend-framework - 如何在选中复选框的情况下设置 Zend multiCheckbox 表单字段?

amazon-ec2 - 批量查找ES瓶颈(附bigdesk截图)

solr - Solr 添加和 Solr 提交之间的区别

java - 如何对lucene的结果进行分组?

php - 从自定义排序和过滤的表中获取上一个和下一个 id

php - 如果电子邮件已发送,则从邮件服务器获取响应

java - 包含/(斜杠)的罗盘查询

php - ZendSearch Lucene bool 查询不能正确处理数字

zend-framework - Zend 搜索 Lucene 和重音字符