1

Hibernate - Lucene Search を使用しています。

インデックス ファイル/テーブルにデータがない場合、並べ替え中に次の実行時例外が発生します。

これは私のコードです:

......... ......... query.setFirstResult(startIndex); query.setMaxResults(displayCount);

                 Sort sort = null;
            SortField sortField = new SortField**("vendorName",!true);
            sort = new Sort(sortField);
            query.setSort(sort);

            objList = query.setProjection(searchFields).setResultTransformer(objSavantAliasToBeanResultTransformer).list();

………………

java.lang.RuntimeException: フィールド vendorName に用語がありません - org.apache.lucene.search.ExtendedFieldCacheImpl$5.createValue(ExtendedFieldCacheImpl.java:139) でソート タイプを判別できません org.apache.lucene.search.FieldCacheImpl$Cache.get (FieldCacheImpl.java:71) org.apache.lucene.search.ExtendedFieldCacheImpl.getAuto(ExtendedFieldCacheImpl.java:127) で org.apache.lucene.search.FieldSortedHitQueue.comparatorAuto(FieldSortedHitQueue.java:487) で org.apache. org.apache.lucene.search.FieldSortedHitQueue.getCachedComparator(FieldSortedHitQueue) で lucene.search.FieldSortedHitQueue$1.createValue(FieldSortedHitQueue.java:184) .java:167) org.apache.lucene.search.FieldSortedHitQueue.(FieldSortedHitQueue.java:55) で org.apache.lucene.search.TopFieldDocCollector.(TopFieldDocCollector.java:43) org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:121) org.apache.lucene.search.Searcher.search(Searcher.java:86) org. hibernate.search.query.QueryHits.updateTopDocs(QueryHits.java:103) org.hibernate.search.query.QueryHits.(QueryHits.java:61) org.hibernate.search.query.FullTextQueryImpl.getQueryHits(FullTextQueryImpl.java) :354) org.hibernate.search.query.FullTextQueryImpl.list(FullTextQueryImpl.java:270) で com.tis.purchasedetails.dao.PurchaseDetailsDAO.getAllPurchaseDetails(PurchaseDetailsDAO.java:1025) で org.apache.jsp.jsp。 PurchaseDetails.purchaseDetailsList_jsp._jspService(purchaseDetailsList_jsp.java:275) の org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) の javax.servlet.http.HttpServlet.org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) のサービス (HttpServlet.java:802) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) の org.apache .jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) ) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) で org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) で org.apache.catalina.core.ApplicationDispatcher. org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) の processRequest(ApplicationDispatcher.java:463)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet. java:264) で javax.servlet.http.HttpServlet.service(HttpServlet.java:802) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) で org.apache.catalina.core.ApplicationFilterChain .doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org. apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet. java:264) で javax.servlet.http.HttpServlet.service(HttpServlet.java:802) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) で org.apache.catalina.core.ApplicationFilterChain .doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org. apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) で org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) で javax.servlet.http.HttpServlet.service (HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache. catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java: 398)332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) で org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) で javax.servlet.http.HttpServlet.service (HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache. catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java: 398)java:264) で javax.servlet.http.HttpServlet.service(HttpServlet.java:802) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) で org.apache.catalina.core.ApplicationFilterChain .doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org. apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)java:264) で javax.servlet.http.HttpServlet.service(HttpServlet.java:802) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) で org.apache.catalina.core.ApplicationFilterChain .doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org. apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.ジャワ:398)org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.ジャワ:398)

4

1 に答える 1

1

別のSortFieldコンストラクターを使用する必要があります。typeも 指定 した もの を 使用 し て ください. https://issues.apache.org/jira/browse/LUCENE-1729も参照してください。

于 2010-02-03T12:14:22.803 に答える