2012-07-27 74 views
1

这是我的代码:如何使用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(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) 

这是不匹配“这一确切短语”(我能做到几乎一切,但完全匹配)。请注意,我已经包含了文档中提到的双引号。有没有办法实现这一点?

回答

1

通过标志明确设置为查询分析器重写的FLAG_PHRASE | FLAG_LOVEHATE | FLAG_BOOLEAN默认。什么你做,因此是打开同义词的支持,但关闭的短语搜索,这是双引号依靠什么。

注意短语搜索是不完全一样的精确匹配,尽管没有更多的情况下,很难告知,如果这是错误的做法,把您的具体情况。