全文检索已经越来越像样了,不过还是发现很多问题,这玩意有些逻辑问题没想通。。有三个字段参与检索:query1,query2,query3这里设置它的逻辑关系如果只是单个的设置没啥问题,可是我想实现如:SELECT * FROM TABLENAME WHERE (query1 like '%测试%' or query2 like '%测试%') and  query3 like '%测试%'
想实现先OR 再 AND查询  我这里的关键词应该怎么设置呢?     IndexSearcher search = new IndexSearcher(indexpath);
            QueryParser qp1 = new QueryParser("title", new StandardAnalyzer());
            Query query1 = qp1.Parse(querystring);
            QueryParser qp2 = new QueryParser("Content", new StandardAnalyzer());
            Query query2 = qp2.Parse(querystring);
            QueryParser qp3 = new QueryParser("tableName", new StandardAnalyzer());
            Query query3 = qp3.Parse("异国文化");
            BooleanQuery query = new BooleanQuery();
            query.Add(query1, BooleanClause.Occur.SHOULD);
            query.Add(query2, BooleanClause.Occur.SHOULD);
            query.Add(query3, BooleanClause.Occur.MUST);
       query.Add(query1, BooleanClause.Occur.SHOULD);
       query.Add(query2, BooleanClause.Occur.SHOULD);
       query.Add(query3, BooleanClause.Occur.MUST);

解决方案 »

  1.   

    (and and)or(and and)
    是不是这样的关系?
      

  2.   

    ( a or b) and ()这样的关系
      

  3.   

     上面的语句貌似是 or  and一起执行了哦  ··
      

  4.   

    没做过这么复杂的,给你个链接看看
    1. 4.3.2 表达式的与或非
    http://www.cnblogs.com/birdshover/archive/2008/09/26/1299816.html2. 五分之四位置的4. BooleanQuery用于测试满足多个条件.下面两个例子用于分别测试了满足与条件和或条件的情况.http://www.lucene.com.cn/net.htm