【发布时间】:2011-09-21 13:50:46
【问题描述】:
我想在我的数据库模型上添加一个 lucene 层。一切正常,我在主要内容旁边使用了几个关键字,这些关键字由一些 HTML 数据填充。
例如
$doc = Zend_Search_Lucene_Document_Html::loadHTML($html);
$doc->addField(Zend_Search_Lucene_Field::keyword('author_id', 1));
我有一个 1:N 表,其中包含一些我想用来过滤搜索结果的数据。假设该文档是一篇可以在不同类别中发布的文章。我现在有一个类别 ID 数组,我想以某种方式将它们添加到此文档中。我的第一种方法是将数组内爆并将其保存为字符串:
$doc->addField(Zend_Search_Lucene_Field::keyword('categories', '12, 15, 22'));
但事实证明搜索有点复杂(搜索类别 1 也返回 12 和 15)。然后我创建了一些“神奇”的字符串,例如 CAT_12_A 而不是 12 以使它们独一无二:
$doc->addField(Zend_Search_Lucene_Field::keyword('categories', 'CAT_12_A, CAT_15_A, CAT_22_A'));
这工作得很好,但我对这个解决方案并不完全满意,因为它显然是一个 hack。有没有机会在没有这种奇怪的黑客攻击的情况下向 Zend Lucene 文档添加多值“关键字”?
感谢您的帮助。
【问题讨论】:
-
我进入这个页面时遇到了同样的问题,我想的正是 CAT_12_ 解决方案,就像你的一样;) 你找到更好的解决方案了吗?
标签: php zend-framework lucene zend-search-lucene