dqcz57269 2011-10-27 10:58
浏览 71
已采纳

具有多个条件的PHP Zend Lucene搜索查询失败

Zend Lucene Search Document

Lucene Document
    pk:Keyword
    category_id:Keyword
    title:UnStored
    description:UnStored

This is my string query "java lucene AND +category_id:7". Result here:

Array
(
    [0] => Array
        (
            [pk] => 209
            [category_id] => 7
            [id] => 0
            [score] => 0.40750848701418
        )
   [1] => Array
        (
            [pk] => 225
            [category_id] => 7
            [id] => 3
            [score] => 0.30750848701619
        )

    [2] => Array
        (
            [pk] => 211
            [category_id] => 8 ====>>> WRONG!!! 
            [id] => 2
            [score] => 0.37152213415004
        )

)

Can you do a Query search on the category_id = 7 only?? Thanks in advance.

  • 写回答

2条回答 默认 最新

  • duanmen1887 2011-10-28 03:02
    关注

    I had solved this problem by using Zend Query Parsing

    $strQuery = Zend_Search_Lucene_Search_QueryParser::parse('java lucene');
    
    $cateTerm  = new Zend_Search_Lucene_Index_Term(7 , 'category_id');
    $cateQuery = new Zend_Search_Lucene_Search_Query_Term($cateTerm);
    
    $query = new Zend_Search_Lucene_Search_Query_Boolean();
    $query->addSubquery($strQuery, true /* required */);
    $query->addSubquery($cateQuery, true /* required */);
    

    Results will be only in category_id = 7 :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作