c ++搜索文本n布尔模式

时间:2010-07-15 16:42:09

标签: c++ regex full-text-search boolean-expression

基本上有两个问题 1.是否有一个c ++库可以像在mysql中那样进行全文布尔搜索。例如,
比方说我有:

string text = "this is my phrase keywords test with boolean query."; 
string booleanQuery = "\"my phrase\" boolean -test -\"keywords test\" OR ";
       booleanQuery += "\"boolean search\" -mysql -sql -java -php"b
//where quotes ("") contain phrases, (-) is NOT keyword and OR is logical OR.

如果第一个回答是否,那么;
2.是否可以在文本中搜索短语。例如,

string text =//same as previous
string keyword = "\"my phrase\"";
//here what's the best way to search for my phrase in the text?

3 个答案:

答案 0 :(得分:1)

关于第二点:string类确实有方法find,请参阅http://www.cppreference.com/wiki/string/find

答案 1 :(得分:1)

TR1有一个正则表达式类(派生自Boost::regex)。它不像你上面使用的那样,但是相当接近。 Boost::phoenixBoost::Spirit也提供类似的功能,但是对于第一次尝试,Boost / TR1正则表达式类可能是更好的选择。

答案 2 :(得分:0)

当然有,试试精神:

http://boost-spirit.com/home/