Php 如何在Zend search lucene关键字中保存多个整数值?

Php 如何在Zend search lucene关键字中保存多个整数值?,php,zend-framework,lucene,zend-search-lucene,Php,Zend Framework,Lucene,Zend Search Lucene,我想在我的数据库模型上添加一个lucene层。一切都很好,我在一些HTML数据填充的主要内容旁边使用了几个关键字 e、 g 我有一个1:N表,其中包含一些数据,我也想用来过滤搜索结果。让我们假设文档是一篇可以按不同类别发布的文章。我现在有一个类别ID数组,我想把它添加到这个文档中。我的第一种方法是对数组进行内爆并将其保存为字符串: $doc->addField(Zend_Search_Lucene_Field::keyword('categories', '12, 15, 22'));

我想在我的数据库模型上添加一个lucene层。一切都很好,我在一些HTML数据填充的主要内容旁边使用了几个关键字

e、 g

我有一个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'));
这工作得很好,但我并不完全满意这个解决方案,因为它显然是一个黑客。有没有可能在Zend Lucene文档中添加一个多值的“关键字”,而不进行这种奇怪的破解


谢谢你的帮助。

在找到你的问题后,我在谷歌上搜索了很多次:看起来如果不修改zend framework核心代码,就无法直接添加多值字段

你试过了吗

$doc->addField(Zend_Search_Lucene_Field::keyword('category_1', '12' ));
$doc->addField(Zend_Search_Lucene_Field::keyword('category_2', '15' ));
$doc->addField(Zend_Search_Lucene_Field::keyword('category_3', '22' ));

??看起来query()将搜索所有字段,因此,如果您不关心哪个字段匹配,您应该会很好?

我进入此页面时遇到了相同的问题,我的脑海中正是CAT_12_解决方案,就像您的一样;)你找到更好的了吗?
$doc->addField(Zend_Search_Lucene_Field::keyword('category_1', '12' ));
$doc->addField(Zend_Search_Lucene_Field::keyword('category_2', '15' ));
$doc->addField(Zend_Search_Lucene_Field::keyword('category_3', '22' ));