我目前正在使用lucene索引数据库。我在考虑将表id存储在索引中,但我找不到通过该字段检索文档的方法。我想一些伪代码会进一步澄清这个问题:
document.add("_id", 7, Field.Index.UN_TOKENIZED, Field.Store.YES);
// How can I query the document with _id=7
// without getting the document with _id=17 or _id=71?
答案 0 :(得分:1)
Zend Lucene的编辑: 您需要一个关键字类型字段才能搜索它。 对于索引,请使用以下内容:
$doc->addField(Zend_Search_Lucene_Field::Keyword('_id', '7'));
对于搜索,请使用:
$idTerm = new Zend_Search_Lucene_Index_Term('_id', '7');
$idQuery = new Zend_Search_Lucene_Search_Query_Term($idTerm);
答案 1 :(得分:1)
只是说我刚刚在Zend Lucene搜索引擎上成功实现了这一点。但是,经过一段时间的故障排除后,我发现字段名称和字段值与显示的方式相反。要纠正这个例子:
// Fine - no change here
$doc->addField(Zend_Search_Lucene_Field::Keyword('_id', '7'));
// Reversed order of parameters
$idTerm = new Zend_Search_Lucene_Index_Term('7', '_id',);
$idQuery = new Zend_Search_Lucene_Search_Query_Term($idTerm);
我希望能帮助别人!