本文整理汇总了Python中whoosh.qparser.MultifieldParser.remove_plugin_class方法的典型用法代码示例。如果您正苦于以下问题:Python MultifieldParser.remove_plugin_class方法的具体用法?Python MultifieldParser.remove_plugin_class怎么用?Python MultifieldParser.remove_plugin_class使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类whoosh.qparser.MultifieldParser
的用法示例。
在下文中一共展示了MultifieldParser.remove_plugin_class方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: search
# 需要导入模块: from whoosh.qparser import MultifieldParser [as 别名]
# 或者: from whoosh.qparser.MultifieldParser import remove_plugin_class [as 别名]
def search(querystring, language_code):
ix = LanguageIndex(settings.WHOOSH_INDEX_PATH, language_code, _get_schema()).load()
# parser = QueryParser('content', ix.schema)
parser = MultifieldParser(['title', 'keywords', 'content'], ix.schema) # fieldboosts={'title':5, 'keywords':4, 'content':1})
parser.remove_plugin_class(WildcardPlugin) # remove unused feature for better performance
query = parser.parse(querystring)
# print(parser, query, querystring)
result = {
'results': [],
}
with ix.searcher() as searcher:
results = searcher.search(query)
# print(results)
# import pdb; pdb.set_trace()
# collect results
for hit in results:
my_hit = {}
# my_hit['pos'] = hit.pos
# my_hit['rank'] = hit.rank
# my_hit['docnum'] = hit.docnum
my_hit['score'] = hit.score
my_hit['object'] = Article.objects.get(code=hit.fields()['code'])
#.exclude(published=False).exclude(release_date__gte=datetime.today())
# my_hit['object']['is_visible'] = True
result['results'].append(my_hit)
# print(hit.pos, hit.rank, hit.docnum, hit.score, hit)
return result
示例2: generic
# 需要导入模块: from whoosh.qparser import MultifieldParser [as 别名]
# 或者: from whoosh.qparser.MultifieldParser import remove_plugin_class [as 别名]
def generic(idx, qs=None, q=None, limit=5, parser=None, page=1):
if qs is q is None:
raise ValueError('cannot have a null querystring and query')
if parser is None:
parser = MultifieldParser(
['title', 'keywords', 'summary', 'content', 'author'], idx.schema, group=OrGroup)
# add better date parsing support
parser.add_plugin(DateParserPlugin())
parser.remove_plugin_class(WildcardPlugin)
with idx.searcher() as search:
# generate the Query object
if qs:
query = parser.parse(qs)
else:
query = q
facet = MultiFacet()
facet.add_score()
facet.add_field('modified', reverse=True)
facet.add_field('title')
results = search.search_page(query, pagenum=page, sortedby=facet, pagelen=limit)
res = clean_results(idx, results, query)
# pagination attributes on `search_page` method
res.page_number = results.pagenum # current page number
res.page_total = results.pagecount # total pages in results
res.offset = results.offset # first result of current page
res.pagelen = results.pagelen # the number of max results per page
return res
示例3: search
# 需要导入模块: from whoosh.qparser import MultifieldParser [as 别名]
# 或者: from whoosh.qparser.MultifieldParser import remove_plugin_class [as 别名]
def search(self, queries, fuzzy = True, default_fields = [], max_results = None):
if type(queries) != list:
queries = [queries]
if type(default_fields) != list:
default_fields = [default_fields]
if fuzzy and len(queries) == 1 and len(queries[0].split()) == 1 and ':' not in queries[0] and '*' not in queries[0]:
queries = ['*%s*' % (queries[0])]
for query in queries:
if type(query) != unicode:
query = query.decode('utf-8')
log.msg('search query: %s' % (query))
with self.ix.searcher() as searcher:
parser = MultifieldParser(default_fields, self.ix.schema)
parser.remove_plugin_class(plugins.WildcardPlugin)
parser.add_plugin(WildcardPlugin)
query = parser.parse(query)
log.msg('search query parsed: %s' % (query))
results = searcher.search(query, limit = None)
count = 0
for result in results:
yield result['oid']
count += 1
if max_results and count >= max_results:
break