From dcbe856cac333457163632485166e6c2a3617efa Mon Sep 17 00:00:00 2001 From: hylom Date: Wed, 28 Feb 2018 19:51:58 +0900 Subject: [PATCH] ns_search: add TermQuery class --- src/ns_search/lucene_wrapper/__init__.py | 2 +- src/ns_search/lucene_wrapper/wrapper.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/ns_search/lucene_wrapper/__init__.py b/src/ns_search/lucene_wrapper/__init__.py index ad4325a6..cad49ca8 100644 --- a/src/ns_search/lucene_wrapper/__init__.py +++ b/src/ns_search/lucene_wrapper/__init__.py @@ -4,7 +4,7 @@ __author__ = 'Hiromichi Matsushima ' __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__ = [] diff --git a/src/ns_search/lucene_wrapper/wrapper.py b/src/ns_search/lucene_wrapper/wrapper.py index 51bc41ab..3d464b8a 100644 --- a/src/ns_search/lucene_wrapper/wrapper.py +++ b/src/ns_search/lucene_wrapper/wrapper.py @@ -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__() -- 2.11.0