【问题标题】:Zend Lucene misbehaving: Queries work one by one but not togetherZend Lucene 行为不端:查询一个一个地工作,但不能一起工作
【发布时间】:2009-10-02 10:18:20
【问题描述】:

好的,事情是这样的:Lucene 对我做了一些奇怪的事情。一切都被正确索引,一切正常,一切都很快等等。

所以我用英语搜索一个类别。数百个结果弹出。

所以我用英语搜索一个国家。数百个结果弹出。

所以我用英语搜索一个类别和一个国家。我知道的组合是有效的。我得到杰克。没有。拉链……为什么?

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
$index = Library_Search_Lucene::open(SearchIndexer::getIndexDirectory());     

$query = new Zend_Search_Lucene_Search_Query_Boolean();

$queryString = new Zend_Search_Lucene_Search_Query_MultiTerm();
$queryString->addTerm(new Zend_Search_Lucene_Index_Term('lang' . $language, 'langSite'));
$query->addSubquery($queryString, true);

if (isset($idCategory)) {
$queryCategory = new Zend_Search_Lucene_Search_Query_MultiTerm();
$queryCategory->addTerm(new Zend_Search_Lucene_Index_Term($idCategory, 'idCategory'));
$query->addSubquery($queryCategory, true);
}

if (isset($country)) {
$queryLocation = new Zend_Search_Lucene_Search_Query_MultiTerm();
$queryLocation->addTerm(new Zend_Search_Lucene_Index_Term($country, 'locationsClean'));
$query->addSubquery($queryLocation, true);
}

 $hits = $index->find($query);

$query->getQueryTerms() 返回一个有效的术语数组。没有错误。我到底做错了什么?

【问题讨论】:

    标签: zend-framework zend-search-lucene


    【解决方案1】:

    我们有完全相同的问题。在 bugtracker 中注明,目前处于离线状态,但可以在 http://www.zendframework.com/issues 找到。 也许它会得到修复,但即便如此,它仍然非常缓慢。

    【讨论】:

    • 我的建议是完全放弃 Lucene。我从未使用过较慢的引擎。我可以在 mysql 或逗号分隔的 txt 文件中进行全文搜索。
    • 小心:Lucene 很棒,Zend_Search_Lucene 很垃圾。我经常使用 Java 实现,我可以告诉你它非常稳定且速度极快!
    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2018-07-26
    • 1970-01-01
    相关资源
    最近更新 更多