首页 > 解决方案 > Xapian - 搜索查询不检索任何匹配项,除非在每个单词中添加了 '"'

问题描述

使用 C++,我已经设法按照此处找到的 Xapian 教程进行操作。

https://getting-started-with-xapian.readthedocs.io/en/latest/practical_example/index.html#

索引器程序按我的预期工作,但搜索程序 - https://getting-started-with-xapian.readthedocs.io/en/latest/practical_example/searching/building.html - 仅适用于警告。

例如,当我运行相当于:

python2 code/python/search1.py db Dent watch

找不到匹配项,除非我改为编写以下内容:

python2 code/python/search1.py db '"Dent" "watch"'

效果和我预期的一样好。问题在于不太清楚它为什么起作用(尽管我知道'"' 符号是某种搜索查询修饰符),以及我应该如何准备查询以进行处理。

例如,Xapian::QueryParser类构造函数是否可以选择为我添加 '"' 符号?或者我应该在尝试检索匹配项之前预处理输入?

标签: c++full-text-searchcommand-line-interfaceinformation-retrievalxapian

解决方案


作为记录,使用以下内容queryParser.parse_query(input, queryParser.FLAG_PHRASE)似乎可以解决我遇到的问题。


推荐阅读