Author: andy
Date: Thu Jun 12 21:55:38 2014
New Revision: 1602301
URL: http://svn.apache.org/r1602301
Log:
Allow leading * and ? (but they may be slow)
Modified:
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
Modified:
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java?rev=1602301&r1=1602300&r2=1602301&view=diff
==============================================================================
---
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
(original)
+++
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
Thu Jun 12 21:55:38 2014
@@ -21,7 +21,7 @@ package org.apache.jena.query.text ;
import java.util.Iterator ;
import java.util.List ;
-import org.apache.lucene.queryparser.classic.QueryParser ;
+import org.apache.lucene.queryparser.classic.QueryParserBase ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -83,7 +83,7 @@ public class DatasetGraphText extends Da
/** Search the text index on the text field associated with the predicate
*/
public Iterator<Node> search(String queryString, Node predicate, int
limit) {
- queryString = QueryParser.escape(queryString) ;
+ queryString = QueryParserBase.escape(queryString) ;
if ( predicate != null ) {
String f = textIndex.getDocDef().getField(predicate) ;
queryString = f + ":" + queryString ;
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=1602301&r1=1602300&r2=1602301&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
Thu Jun 12 21:55:38 2014
@@ -26,17 +26,14 @@ import org.apache.lucene.analysis.Analyz
import org.apache.lucene.analysis.core.KeywordAnalyzer ;
import org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper ;
import org.apache.lucene.analysis.standard.StandardAnalyzer ;
-import org.apache.lucene.document.Document ;
-import org.apache.lucene.document.Field ;
-import org.apache.lucene.document.FieldType ;
-import org.apache.lucene.document.StringField ;
-import org.apache.lucene.document.TextField ;
+import org.apache.lucene.document.* ;
import org.apache.lucene.index.DirectoryReader ;
import org.apache.lucene.index.IndexReader ;
import org.apache.lucene.index.IndexWriter ;
import org.apache.lucene.index.IndexWriterConfig ;
import org.apache.lucene.queryparser.classic.ParseException ;
import org.apache.lucene.queryparser.classic.QueryParser ;
+import org.apache.lucene.queryparser.classic.QueryParserBase ;
import org.apache.lucene.search.IndexSearcher ;
import org.apache.lucene.search.Query ;
import org.apache.lucene.search.ScoreDoc ;
@@ -207,9 +204,10 @@ public class TextIndexLucene implements
}
private List<Map<String, Node>> get$(IndexReader indexReader, String uri)
throws ParseException, IOException {
- String escaped = QueryParser.escape(uri) ;
+ 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) ;
IndexSearcher indexSearcher = new IndexSearcher(indexReader) ;
ScoreDoc[] sDocs = indexSearcher.search(query, 1).scoreDocs ;
@@ -245,15 +243,8 @@ public class TextIndexLucene implements
@Override
public List<Node> query(String qs, int limit) {
- try {
- // Upgrade at Java7 ...
- IndexReader indexReader = DirectoryReader.open(directory) ;
- try {
- return query$(indexReader, qs, limit) ;
- }
- finally {
- indexReader.close() ;
- }
+ try(IndexReader indexReader = DirectoryReader.open(directory)) {
+ return query$(indexReader, qs, limit) ;
}
catch (Exception ex) {
exception(ex) ;
Modified:
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java?rev=1602301&r1=1602300&r2=1602301&view=diff
==============================================================================
---
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
(original)
+++
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
Thu Jun 12 21:55:38 2014
@@ -23,7 +23,7 @@ import java.util.List ;
import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.lib.InternalErrorException ;
import org.apache.jena.atlas.logging.Log ;
-import org.apache.lucene.queryparser.classic.QueryParser ;
+import org.apache.lucene.queryparser.classic.QueryParserBase ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -31,11 +31,7 @@ import com.hp.hpl.jena.datatypes.RDFData
import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.query.QueryBuildException ;
-import com.hp.hpl.jena.sparql.core.DatasetGraph ;
-import com.hp.hpl.jena.sparql.core.GraphView ;
-import com.hp.hpl.jena.sparql.core.Quad ;
-import com.hp.hpl.jena.sparql.core.Substitute ;
-import com.hp.hpl.jena.sparql.core.Var ;
+import com.hp.hpl.jena.sparql.core.* ;
import com.hp.hpl.jena.sparql.engine.ExecutionContext ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
@@ -177,7 +173,7 @@ public class TextQueryPF extends Propert
activeGraph.getGraphName() != null
?
TextQueryFuncs.graphNodeToString(activeGraph.getGraphName())
: Quad.defaultGraphNodeGenerated.getURI() ;
- String escaped = QueryParser.escape(uri) ;
+ String escaped = QueryParserBase.escape(uri) ;
String qs2 = server.getDocDef().getGraphField() + ":" +
escaped ;
queryString = "(" + queryString + ") AND " + qs2 ;
}
Modified:
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java?rev=1602301&r1=1602300&r2=1602301&view=diff
==============================================================================
---
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
(original)
+++
jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
Thu Jun 12 21:55:38 2014
@@ -50,6 +50,7 @@ public class TextIndexLuceneAssembler ex
.
*/
+ @SuppressWarnings("resource")
@Override
public TextIndex open(Assembler a, Resource root, Mode mode) {
try {
Modified:
jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java?rev=1602301&r1=1602300&r2=1602301&view=diff
==============================================================================
---
jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
(original)
+++
jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
Thu Jun 12 21:55:38 2014
@@ -52,8 +52,9 @@ public class TextSearchUtil {
try {
Directory directory = FSDirectory.open(indexDir) ;
IndexWriterConfig wConfig = new IndexWriterConfig(VER, analyzer) ;
- IndexWriter indexWriter = new IndexWriter(directory, wConfig) ;
- indexWriter.close() ; // force creation of the index files
+ // force creation of the index files
+ try(IndexWriter indexWriter = new IndexWriter(directory, wConfig))
{
+ }
} catch (IOException ex) {
IO.exception(ex) ;
}