OSDN Git Service

ns_search: add TermQuery class
authorhylom <hylom@users.sourceforge.jp>
Wed, 28 Feb 2018 10:51:58 +0000 (19:51 +0900)
committerhylom <hylom@users.sourceforge.jp>
Wed, 28 Feb 2018 10:51:58 +0000 (19:51 +0900)
src/ns_search/lucene_wrapper/__init__.py
src/ns_search/lucene_wrapper/wrapper.py

index ad4325a..cad49ca 100644 (file)
@@ -4,7 +4,7 @@
 __author__ = 'Hiromichi Matsushima <hylom@users.osdn.net>'
 __version__ = "0.1.0"
 
-from wrapper import init_vm, Indexer, Searcher, Document, Query, QueryParseError
+from wrapper import init_vm, Indexer, Searcher, Document, Query, QueryParseError, TermQuery
 
 
 __all__ = []
index 51bc41a..3d464b8 100644 (file)
@@ -4,8 +4,8 @@
 import lucene
 from java.io import File
 from org.apache.lucene.util import Version
-from org.apache.lucene.index import IndexWriter, IndexWriterConfig, IndexReader
-from org.apache.lucene.search import IndexSearcher
+from org.apache.lucene.index import IndexWriter, IndexWriterConfig, IndexReader, Term
+from org.apache.lucene.search import IndexSearcher, TermQuery as _TermQuery
 from org.apache.lucene.analysis.ja import JapaneseAnalyzer, JapaneseTokenizer
 from org.apache.lucene.store import SimpleFSDirectory
 from org.apache.lucene.document import Document as LuceneDocument, Field, TextField, StringField, IntField
@@ -104,6 +104,10 @@ class Searcher(LuceneWrapper):
         docs = self._searcher.search(query.query, max_result)
         return SearchResults(docs, self._searcher)
 
+    def raw_search(self, query, max_result=1000):
+        docs = self._searcher.search(query, max_result)
+        return SearchResults(docs, self._searcher)
+
 
 class SearchResults(LuceneWrapper):
     def __init__(self, docs, searcher):
@@ -141,6 +145,14 @@ class ScoredDocument(LuceneWrapper):
         return val
 
 
+class TermQuery(LuceneWrapper):
+    def __init__(self, field_name, query_term):
+        super(TermQuery, self).__init__()
+
+        term = Term(field_name, query_term)
+        self.query = _TermQuery(term)
+
+
 class Query(LuceneWrapper):
     def __init__(self, field_name, query_text):
         super(Query, self).__init__()