Full text limit fix (#1424)

This commit is contained in:
Denis Bykhov 2022-04-17 16:03:48 +06:00 committed by GitHub
parent e5187e7d4a
commit 3240cac4df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -144,23 +144,16 @@ export class FullTextIndex implements WithFind {
const { _id, $search, ...mainQuery } = query
if ($search === undefined) return toFindResult([])
let skip = 0
const ids: Set<Ref<Doc>> = new Set<Ref<Doc>>()
const baseClass = this.hierarchy.getBaseClass(_class)
const classes = this.hierarchy.getDescendants(baseClass)
const fullTextLimit = 10000
while (true) {
const docs = await this.adapter.search(classes, query, fullTextLimit, skip)
for (const doc of docs) {
ids.add(doc.id)
if (doc.attachedTo !== undefined) {
ids.add(doc.attachedTo)
}
const docs = await this.adapter.search(classes, query, fullTextLimit)
for (const doc of docs) {
ids.add(doc.id)
if (doc.attachedTo !== undefined) {
ids.add(doc.attachedTo)
}
if (docs.length < fullTextLimit) {
break
}
skip += docs.length
}
const resultIds = getResultIds(ids, _id)
const { limit, ...otherOptions } = options ?? { }