Zend Lucene-如何做查询 [英] Zend Lucene - How to do query
本文介绍了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屋!
查看全文