【问题标题】:Zend Lucene - How to do queryZend Lucene - 如何进行查询
【发布时间】:2011-07-07 00:34:55
【问题描述】:

我的创建索引函数如下

function create()
{
    Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive ());
    $index = Zend_Search_Lucene::create('data/index');      
    $doc = new Zend_Search_Lucene_Document();

    $doc->addField(Zend_Search_Lucene_Field::Text('title', 'a cheap car in town milage under 3000','utf-8'));
    $doc->addField(Zend_Search_Lucene_Field::Text('detail','a cheap car in town milage under 3000','utf-8'));
    $doc->addField(Zend_Search_Lucene_Field::Text('category', 'milage under 3000','utf-8'));

    $index->addDocument($doc);
}

当用户搜索“一辆3000公里以下的便宜车”时,我会将查询分成3部分

$query1 = "a cheap car";
$query2 = "in town";
$query3 = " milage under 3000";

我要搜索

$query1 in field "title", $query2 in field "detail", $query3 in field "category". 

我还想搜索数字不区分大小写和文本不区分大小写。我该怎么做?我需要实际的代码,因为我完全被 Zend Lucene 文档弄糊涂了,我不知道要使用哪个代码或查询。

【问题讨论】:

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


    【解决方案1】:

    您的查询将是:

    $query = Zend_Search_Lucene_Search_QueryParser::parse("title:($query1) detail:($query2) category:($query3)";
    $hits = $index->find( $query);
    

    索引不区分大小写,除非在创建时明确设置为区分大小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2019-07-05
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多