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

如何使用xapian和python匹配准确的短语?,python,xapian,Python,Xapian,这是我的代码: 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(

这是我的代码:

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)
db=xapian.Database(path/to/Database)
询盘
stemmer=xapian.Stem()
query_parser=xapian.QueryParser()
查询\语法分析器.设置\数据库(db)
查询\语法分析器.设置\词干分析器(词干分析器)
query\u parser.set\u default\u op(xapian.query.op\OR)
xapian_flags=xapian.QueryParser.FLAG|xapian.QueryParser.FLAG|同义词| xapian.QueryParser.FLAG|
query=query\u parser.parse\u query('this exact phrase',xapian\u标志)
查询.设置查询(查询)

这与“这个精确的短语”不匹配(除了精确的匹配之外,我几乎可以实现任何东西)。请注意,我已经包括了文档中提到的双引号。有没有办法做到这一点?

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


请注意,短语搜索与精确匹配并不完全相同,尽管没有更多的上下文,很难判断这是否是针对您的情况采取的错误方法。

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

请注意,短语搜索与精确匹配并不完全相同,尽管如果没有更多的上下文,很难判断这是否是针对您的情况采取的错误方法