mirror of https://github.com/apache/lucene.git
allow flags on getDocListAndSet method: SOLR-39
git-svn-id: https://svn.apache.org/repos/asf/incubator/solr/trunk@425567 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0d60aba624
commit
ecddbc6337
|
@ -38,6 +38,8 @@ New Features
|
||||||
20. Made query parser default operator configurable via schema.xml:
|
20. Made query parser default operator configurable via schema.xml:
|
||||||
<solrQueryParser defaultOperator="AND|OR"/>
|
<solrQueryParser defaultOperator="AND|OR"/>
|
||||||
The default operator remains "OR".
|
The default operator remains "OR".
|
||||||
|
21. JAVA API: new version of SolrIndexSearcher.getDocListAndSet() which takes
|
||||||
|
flags (Greg Ludington via yonik, SOLR-39)
|
||||||
|
|
||||||
Changes in runtime behavior
|
Changes in runtime behavior
|
||||||
1. classes reorganized into different packages, package names changed to Apache
|
1. classes reorganized into different packages, package names changed to Apache
|
||||||
|
|
|
@ -1008,23 +1008,61 @@ public class SolrIndexSearcher extends Searcher implements SolrInfoMBean {
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public DocListAndSet getDocListAndSet(Query query, Query filter, Sort lsort, int offset, int len) throws IOException {
|
public DocListAndSet getDocListAndSet(Query query, Query filter, Sort lsort, int offset, int len) throws IOException {
|
||||||
|
List<Query> filterList = buildQueryList(filter);
|
||||||
|
return getDocListAndSet(query, filterList, lsort, offset, len);
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Returns documents matching both <code>query</code> and <code>filter</code>
|
||||||
|
* and sorted by <code>sort</code>. Also returns the compete set of documents
|
||||||
|
* matching <code>query</code> and <code>filter</code> (regardless of <code>offset</code> and <code>len</code>).
|
||||||
|
* <p>
|
||||||
|
* This method is cache aware and may retrieve <code>filter</code> from
|
||||||
|
* the cache or make an insertion into the cache as a result of this call.
|
||||||
|
* <p>
|
||||||
|
* FUTURE: The returned DocList may be retrieved from a cache.
|
||||||
|
* <p>
|
||||||
|
* The DocList and DocSet returned should <b>not</b> be modified.
|
||||||
|
*
|
||||||
|
* @param query
|
||||||
|
* @param filter may be null
|
||||||
|
* @param lsort criteria by which to sort (if null, query relevance is used)
|
||||||
|
* @param offset offset into the list of documents to return
|
||||||
|
* @param len maximum number of documents to return
|
||||||
|
* @param flags user supplied flags for the result set
|
||||||
|
* @return DocListAndSet meeting the specified criteria, should <b>not</b> be modified by the caller.
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public DocListAndSet getDocListAndSet(Query query, Query filter, Sort lsort, int offset, int len, int flags) throws IOException {
|
||||||
|
List<Query> filterList = buildQueryList(filter);
|
||||||
|
return getDocListAndSet(query, filterList, lsort, offset, len, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple utility method for to build a filterList from a query
|
||||||
|
* @param filter
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private List<Query> buildQueryList(Query filter) {
|
||||||
List<Query> filterList = null;
|
List<Query> filterList = null;
|
||||||
if (filter != null) {
|
if (filter != null) {
|
||||||
filterList = new ArrayList<Query>(2);
|
filterList = new ArrayList<Query>(2);
|
||||||
filterList.add(filter);
|
filterList.add(filter);
|
||||||
}
|
}
|
||||||
return getDocListAndSet(query, filterList, lsort, offset, len);
|
return filterList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public DocListAndSet getDocListAndSet(Query query, List<Query> filterList, Sort lsort, int offset, int len) throws IOException {
|
public DocListAndSet getDocListAndSet(Query query, List<Query> filterList, Sort lsort, int offset, int len) throws IOException {
|
||||||
DocListAndSet ret = new DocListAndSet();
|
DocListAndSet ret = new DocListAndSet();
|
||||||
getDocListC(ret,query,filterList,null,lsort,offset,len,GET_DOCSET);
|
getDocListC(ret,query,filterList,null,lsort,offset,len,GET_DOCSET);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DocListAndSet getDocListAndSet(Query query, List<Query> filterList, Sort lsort, int offset, int len, int flags) throws IOException {
|
||||||
|
DocListAndSet ret = new DocListAndSet();
|
||||||
|
getDocListC(ret,query,filterList,null,lsort,offset,len, flags |= GET_DOCSET);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns documents matching both <code>query</code> and <code>filter</code>
|
* Returns documents matching both <code>query</code> and <code>filter</code>
|
||||||
|
@ -1047,6 +1085,11 @@ public class SolrIndexSearcher extends Searcher implements SolrInfoMBean {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DocListAndSet getDocListAndSet(Query query, DocSet filter, Sort lsort, int offset, int len, int flags) throws IOException {
|
||||||
|
DocListAndSet ret = new DocListAndSet();
|
||||||
|
getDocListC(ret,query,null,filter,lsort,offset,len, flags |= GET_DOCSET);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
protected DocList sortDocSet(DocSet set, Sort sort, int nDocs) throws IOException {
|
protected DocList sortDocSet(DocSet set, Sort sort, int nDocs) throws IOException {
|
||||||
final FieldSortedHitQueue hq =
|
final FieldSortedHitQueue hq =
|
||||||
|
|
Loading…
Reference in New Issue