示例#1
0
    def search(self,
               query,
               fields=FEED_ENTRY_FIELDS,
               analyzer=None,
               store=None):
        if not query or len(query.strip()) == 0 or len(fields) == 0:
            return None
        analyzer = analyzer or self.analyzer
        if store is None:
            store = self.entry_modifier.store

        if len(fields) > 1:
            qp = lucene.MultiFieldQueryParser(fields, analyzer)
        else:
            qp = lucene.QueryParser(fields[0], analyzer)
        q = qp.parse(query)

        searcher = lucene.IndexSearcher(store)
        hits = searcher.search(q, lucene.Sort.RELEVANCE)
        return HitHolder(hits, searcher)