Я хотел бы внедрить полнотекстовый поиск на основе лимитов и смещений для моего коуча, но у меня возникла следующая проблема, когда я определяю лимит для 10 и получаю 13 результатов вместо (или разных количеств ключей документов)).
Итак, у меня есть следующий код:
q := query{
Query: searchString,
From: offset,
Limit: limit,
}
query := gocb.NewSearchQuery(indexName, q).Limit(limit).Skip(offset)
fmt.Printf("%+v\n", query)
result, err := bucket.ExecuteSearchQuery(query)
if err != nil {
return 0, resp, err
}
И запрос выглядит так (потому что я его распечатываю):
&{name:indexName data:{Query:{Query:+owner_id:randomID From:10 Limit:10} Size:10 From:10 Explain:false Highlight:<nil> Fields:[] Sort:[] Facets:map[] Ctl:<nil>}}
Здесь +owner_id:randomID
это searchString, и я добавляю From и Limit в обоих местах.
У меня тест не пройден из-за:
couchbase_test.go:234: Length should be 10, instead of count: 13
Это длина result.Hits()
.
Так что же я здесь не так делаю? Иногда это работает правильно, но иногда это терпит неудачу.
ОБНОВЛЕНИЕ 1
Если я добавлю searchString непосредственно в NewSearchQuery, например gocb.NewSearchQuery(indexName, searchString)...
, он ничего не найдет, поскольку он должен иметь следующий формат.