2012-07-27 33 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默認。什麼你做,因此是打開同義詞的支持,但關閉的短語搜索,這是雙引號依靠什麼。

注意短語搜索是不完全一樣的精確匹配,儘管沒有更多的情況下,很難告知,如果這是錯誤的做法,把您的具體情況。