我正在尝试使用OR运算符执行查询,如下所示:
MapReduceResult result = riakClient. mapReduce("some_bucket", "Name:c1 OR c2"). addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), true). execute();
我只得到查询中的第一个对象(其中name='c1')。如果我再次更改查询的顺序(即名称:c2或c1),我只得到查询中的第一个对象(其中名称="c2")。
java客户端中是否支持OR运算符(以及其他查询运算符)?
我从Basho engeneer,Sean C.那里得到了这个答案:
您要么需要对条款进行分组,要么对两个条款都进行限定。如果没有字段标识符,搜索查询将假定正在搜索默认字段。您可以使用"search cmd explain"命令来确定如何解释查询。这里有两种替代方式来表达您的查询:
名称:c1或名称:c2
名称:(c1或c2)
两种选择都对我有效!