如何使用xapian和python精确匹配短语?

2024-06-07 08:19:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

db = xapian.Database(path/to/database)
enquire = xapian.Enquire
stemmer = xapian.Stem(<supported language>)
query_parser = xapian.QueryParser()
query_parser.set_database(db)
query_parser.set_stemmer(stemmer)
query_parser.set_default_op(xapian.query.OP_OR)
xapian_flags = xapian.QueryParser.FLAG_BOOLEAN | xapian.QueryParser.FLAG_SYNONYM | xapian.QueryParser.FLAG_LOVEHATE
query = query_parser.parse_query('"this exact phrase"', xapian_flags)
enquiry.set_query(query)

这与“这个短语”不匹配(除了精确匹配之外,我几乎什么都能实现)。请注意,我已经在文档中包含了双引号。有没有办法做到这一点?在


Tags: topath代码parserdbquerydatabaseflags
1条回答
网友
1楼 · 发布于 2024-06-07 08:19:36

通过显式地设置查询解析器的标志,可以覆盖FLAG_PHRASE | FLAG_LOVEHATE | FLAG_BOOLEAN的默认值。因此,您所做的是打开同义词支持,但关闭短语搜索,这正是双引号所依赖的。在

请注意,短语搜索并不是严格意义上的完全匹配,尽管没有更多的上下文,很难建议这是否是一个错误的方法,以适合您的情况。在

相关问题 更多 >

    热门问题