You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/06/23 19:24:33 UTC
svn commit: r1604886 -
/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
Author: andy
Date: Mon Jun 23 17:24:33 2014
New Revision: 1604886
URL: http://svn.apache.org/r1604886
Log:
DRY - centralize lucene query parsing.
Modified:
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
Modified: jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java?rev=1604886&r1=1604885&r2=1604886&view=diff
==============================================================================
--- jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java (original)
+++ jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java Mon Jun 23 17:24:33 2014
@@ -203,12 +203,17 @@ public class TextIndexLucene implements
}
}
+ private static Query parseQuery(String queryString, String primaryField, Analyzer analyzer) throws ParseException {
+ QueryParser queryParser = new QueryParser(VER, primaryField, analyzer) ;
+ queryParser.setAllowLeadingWildcard(true) ;
+ Query query = queryParser.parse(queryString) ;
+ return query ;
+ }
+
private List<Map<String, Node>> get$(IndexReader indexReader, String uri) throws ParseException, IOException {
String escaped = QueryParserBase.escape(uri) ;
String qs = docDef.getEntityField() + ":" + escaped ;
- QueryParser queryParser = new QueryParser(VER, docDef.getPrimaryField(), analyzer) ;
- queryParser.setAllowLeadingWildcard(true) ;
- Query query = queryParser.parse(qs) ;
+ Query query = parseQuery(qs, docDef.getPrimaryField(), analyzer) ;
IndexSearcher indexSearcher = new IndexSearcher(indexReader) ;
ScoreDoc[] sDocs = indexSearcher.search(query, 1).scoreDocs ;
List<Map<String, Node>> records = new ArrayList<Map<String, Node>>() ;
@@ -245,7 +250,7 @@ public class TextIndexLucene implements
public List<Node> query(String qs, int limit) {
try(IndexReader indexReader = DirectoryReader.open(directory)) {
return query$(indexReader, qs, limit) ;
- }
+ }
catch (Exception ex) {
exception(ex) ;
return null ;
@@ -254,9 +259,7 @@ public class TextIndexLucene implements
private List<Node> query$(IndexReader indexReader, String qs, int limit) throws ParseException, IOException {
IndexSearcher indexSearcher = new IndexSearcher(indexReader) ;
- QueryParser queryParser = new QueryParser(VER, docDef.getPrimaryField(), analyzer) ;
- Query query = queryParser.parse(qs) ;
-
+ Query query = parseQuery(qs, docDef.getPrimaryField(), analyzer) ;
if ( limit <= 0 )
limit = MAX_N ;
ScoreDoc[] sDocs = indexSearcher.search(query, limit).scoreDocs ;