Java Code Examples for org.apache.lucene.search.Searcher#close()
The following examples show how to use
org.apache.lucene.search.Searcher#close() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: LuceneContentSvcImpl.java From Lottery with GNU General Public License v2.0 | 6 votes |
@Transactional(readOnly = true) public Pagination searchPage(Directory dir, String queryString,String category,String workplace, Integer siteId, Integer channelId, Date startDate, Date endDate, int pageNo, int pageSize) throws CorruptIndexException, IOException, ParseException { Searcher searcher = new IndexSearcher(dir); try { Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); Query query = LuceneContent.createQuery(queryString,category,workplace, siteId, channelId, startDate, endDate, analyzer); TopDocs docs = searcher.search(query, pageNo * pageSize); Pagination p = LuceneContent.getResultPage(searcher, docs, pageNo, pageSize); List<?> ids = p.getList(); List<Content> contents = new ArrayList<Content>(ids.size()); for (Object id : ids) { contents.add(contentMng.findById((Integer) id)); } p.setList(contents); return p; } finally { searcher.close(); } }
Example 2
Source File: LuceneContentSvcImpl.java From Lottery with GNU General Public License v2.0 | 5 votes |
@Transactional(readOnly = true) public List<Content> searchList(Directory dir, String queryString,String category,String workplace, Integer siteId, Integer channelId, Date startDate, Date endDate, int first, int max) throws CorruptIndexException, IOException, ParseException { Searcher searcher = new IndexSearcher(dir); try { Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); Query query = LuceneContent.createQuery(queryString,category,workplace, siteId, channelId, startDate, endDate, analyzer); if (first < 0) { first = 0; } if (max < 0) { max = 0; } TopDocs docs = searcher.search(query, first + max); List<Integer> ids = LuceneContent.getResultList(searcher, docs, first, max); List<Content> contents = new ArrayList<Content>(ids.size()); for (Object id : ids) { contents.add(contentMng.findById((Integer) id)); } return contents; } finally { searcher.close(); } }
Example 3
Source File: MemoryIndex.java From netbeans with Apache License 2.0 | 4 votes |
@Override public <T> void query( @NonNull Collection<? super T> result, @NonNull Convertor<? super Document, T> convertor, @NullAllowed FieldSelector selector, @NullAllowed AtomicBoolean cancel, @NonNull Query... queries) throws IOException, InterruptedException { Parameters.notNull("queries", queries); //NOI18N Parameters.notNull("convertor", convertor); //NOI18N Parameters.notNull("result", result); //NOI18N if (selector == null) { selector = AllFieldsSelector.INSTANCE; } lock.readLock().lock(); try { final IndexReader in = getReader(); if (in == null) { return; } final BitSet bs = new BitSet(in.maxDoc()); final Collector c = new BitSetCollector(bs); final Searcher searcher = new IndexSearcher(in); try { for (Query q : queries) { if (cancel != null && cancel.get()) { throw new InterruptedException (); } searcher.search(q, c); } } finally { searcher.close(); } for (int docNum = bs.nextSetBit(0); docNum >= 0; docNum = bs.nextSetBit(docNum+1)) { if (cancel != null && cancel.get()) { throw new InterruptedException (); } final Document doc = in.document(docNum, selector); final T value = convertor.convert(doc); if (value != null) { result.add (value); } } } finally { lock.readLock().unlock(); } }
Example 4
Source File: MemoryIndex.java From netbeans with Apache License 2.0 | 4 votes |
@Override public <S, T> void queryDocTerms( @NonNull Map<? super T, Set<S>> result, @NonNull Convertor<? super Document, T> convertor, @NonNull Convertor<? super Term, S> termConvertor, @NullAllowed FieldSelector selector, @NullAllowed AtomicBoolean cancel, @NonNull Query... queries) throws IOException, InterruptedException { Parameters.notNull("result", result); //NOI18N Parameters.notNull("convertor", convertor); //NOI18N Parameters.notNull("termConvertor", termConvertor); //NOI18N Parameters.notNull("queries", queries); //NOI18N if (selector == null) { selector = AllFieldsSelector.INSTANCE; } lock.readLock().lock(); try { final IndexReader in = getReader(); if (in == null) { return; } final BitSet bs = new BitSet(in.maxDoc()); final Collector c = new BitSetCollector(bs); final Searcher searcher = new IndexSearcher(in); final TermCollector termCollector = new TermCollector(c); try { for (Query q : queries) { if (cancel != null && cancel.get()) { throw new InterruptedException (); } if (q instanceof TermCollector.TermCollecting) { ((TermCollector.TermCollecting)q).attach(termCollector); } else { throw new IllegalArgumentException ( String.format("Query: %s does not implement TermCollecting", //NOI18N q.getClass().getName())); } searcher.search(q, termCollector); } } finally { searcher.close(); } for (int docNum = bs.nextSetBit(0); docNum >= 0; docNum = bs.nextSetBit(docNum+1)) { if (cancel != null && cancel.get()) { throw new InterruptedException (); } final Document doc = in.document(docNum, selector); final T value = convertor.convert(doc); if (value != null) { final Set<Term> terms = termCollector.get(docNum); if (terms != null) { result.put (value, convertTerms(termConvertor, terms)); } } } } finally { lock.readLock().unlock(); } }