JSSDK的AV.SearchQuery查询结果异常

问题:
我将几个类添加到应用内搜索里面,其中一个类是Competition,类中有name,cityId(关联类City),description,logoUrl等字段,同时将name和cityId开启索引。接下来我使用JSSDK的AV.SearchQuery发起请求:参数如下图:


此时问题出现了:查询结果从101条开始时,出现未开启索引的字段无法查询,例如字段description和logoUrl无法查询到值,显示underfined,而开启索引的字段例如name和cityId都可以正常查询。多次修改了limit的值,进行查询,还是出现同样的问题。我反复查看了文档,没有找到关于这一方面的知识,不知道是JSSDK的问题还是后台的设计就是如此?

q 参数的值看起来有些怪异,都已经知道 objectId 了,直接用普通查询即可,没有必要用应用内搜索呀。

我这个只是举个例子而已的,以后的请求参数会比较复杂。关键是我的问题不在于参数q,而是应用内搜索的查询结果,一旦查询的返回结果大于100条时,100以后的记录出现的未加入索引的字段无法查询的问题

我想知道为什么在应用内搜索中,查询返回结果小于100,都可以正常查询,一旦查询返回结果大于100时,在100以后的记录中,有加入索引的字段可以正常显示,而没有加入索引的字段却显示underfined,这是什么原因?

在吗?麻烦你帮我看一下

方便给出可复现问题的 curl 命令吗?(可隐去 app key)

是要我把curl的整个命令发给您吗?

或者您有邮箱吗?我私发给您

是的,完整的 curl 命令(您也可以通过论坛的私信功能发送)

您好!完整的curl命令已经发给您了,麻烦帮我看一下

我的应用里面开启了应用内搜索的类还有Match,Team,这个两个类和Competition类的索引字段都是cityId和name,您也可以对这两个类进行测试。

感谢提供相应信息,我已经复现了您遇到的问题,我们会调查一下原因,有进展会回复此帖。

非常感谢给我们报 bug gift_heart, 我们会尽快修复。

等bug修复好了,麻烦通知我一声,谢谢!

刚刚修好,您可以再试一下,现在应该能返回完整的结果

好的,我试过了,结果可以正常查询了,十分感谢

您好!我在测试leancloud 的应用内搜索的时候发现了一个问题,希望您帮我看一下:
我的问题是:
我有一个Todo类,我将其加入了应用内搜索,并将其中的number,title字段加入索引,同时插入400记录,其中100记录的title字段等于“意大利足球”,100记录的title字段等于“意大利篮球”,100记录的title字段等于“英格兰足球”,100记录的title字段等于“英格兰篮球”,随后发起全文检索:下面是我的请求:

结果只能查询到100记录,记录为:title为“意大利篮球”的100条记录可以被查询,而title为“意大利足球”的100条记录无法查询, 如果将“意大利“改成“英格兰”,结果也只出现100记录,记录为:title为“英格兰篮球”的100条记录可以被查询,而title为“英格兰足球”的100条记录无法查询,不知道为什么会出现这种问题?其他类似的字段进行查询也会出现查询不到的问题,但是使用AV.Object 的contains进行字符串查询时都可以查询。

您有空的话,先帮我看一下,很急。

可能是分词导致的。「意大利足球」被分词分为一个词,「意大利」、「篮球」被分为两个词。英格兰同理。具体可以通过 /search/analyze 验证一下分词结果,或者直接搜索 q=意大利足球 看看有没有结果。如果是分词导致的,可以上传自定义词库。具体参见 文档

如果不是分词导致的,可能是搜索的索引不全,可以尝试在控制台重建下搜索的索引。

您好!请问一下:leancloud是否支持联合索引?

应用内搜索是基于 elastic search 的,elastic search 的索引本身就能支持高性能的联合查询(缓存加特殊的数据结构)。

如果是结构化数据存储,在控制台建索引的时候添加多个字段就可以创建联合索引。

好的,谢谢,我了解了