【问题标题】:Multiple filed query search in lucene using hibernate使用hibernate在lucene中进行多字段查询搜索
【发布时间】:2014-02-10 05:57:48
【问题描述】:

我是 Lucene 新手,我正在休眠搜索员工类的两个字段,字段是 emp_nameemp_address,但使用此代码

Session session = HibernateUtil.getSessionFactory().openSession();
        FullTextSession fullTextSession = Search.getFullTextSession(session);
        SearchFactory searchFactory = fullTextSession.getSearchFactory();
        String testString = "\"karthick\" AND \"tn\"";
        //String testString = '+'+"karthick AND tn";
        System.out.println(testString);
        String[] fields={"emp_name","emp_address"};
        /* Creating the Lucene Query */
        FullTextSession fSession = Search.getFullTextSession(session);
        fSession.beginTransaction();
        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
        QueryBuilder mythQB = searchFactory.buildQueryBuilder().forEntity( EmpVo.class ).get();
        Query luceneQuery = mythQB.keyword().onFields("emp_name","emp_address").matching(testString).createQuery();
        org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery( luceneQuery );
        List<EmpVo> result = fullTextQuery.list();
        for (EmpVo employee : result) {
            System.out.println(employee.getEmp_name()+"------"+employee.getEmp_telno()+"------"+employee.getEmp_address());
        }

我只需要得到employee name karthick and employee address tn 的结果,但是 对我来说,我得到了这样的结果

karthick------137594------tn
guna------134679------tn
chandra------246810------tn

【问题讨论】:

    标签: lucene hibernate-search


    【解决方案1】:

    我通过在查询解析器中使用以下语法找到了解决方案

    String tst = "emp_name:\"karthick\" AND emp_address:\"tn\"";
            Query lucenceQuery = new QueryParser(Version.LUCENE_35, null, analyzer).parse(tst);
            List<EmpVo> employees = fSession.createFullTextQuery(lucenceQuery, EmpVo.class).list();
    

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 2012-01-08
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      相关资源
      最近更新 更多