Zend Lucene-如何做查询 [英] Zend Lucene - How to do query

查看:87
本文介绍了Zend Lucene-如何做查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的创建索引函数如下所示

My create index function is as bellow

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部分

When user search for "a cheap car in town milage under 3000", I will split the query into 3 parts

$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文档完全感到困惑,我不知道要使用哪个代码或查询.

I also want to search number case insensitive and text case insensitive. How can I do it? I would need the actual code because I'm completely confused by the Zend Lucene docs, I don't know which code or query to use.

推荐答案

您的查询将是:

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

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

Index is case-insensitive, unless explicitly set to case sensitive upon creation.

这篇关于Zend Lucene-如何做查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆