【问题标题】:What is better ? One big field or many small?什么是更好的 ?一个大领域还是许多小领域?
【发布时间】:2012-02-09 14:53:52
【问题描述】:

我正在编写一个基于 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 字或更多)。

【问题讨论】:

    标签: zend-framework lucene zend-search-lucene


    【解决方案1】:

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

    Lucene 将字段的术语存储在一个大字典中作为{field}{term} 的连接形式,因此如果您不需要单独处理字段,最好将它们放入一个包中。这样,您将拥有更小的字典(尤其是在这些字段的术语相似的情况下)和更少的磁盘搜索(扫描的帖子列表的总和将大致保持不变)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-24
      • 2010-09-26
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多