GraphQL Mongo-搜索结果未返回唯一匹配项

时间:2019-11-15 14:19:10

标签: spring mongodb spring-boot

我正在使用Spring Boot运行从我的Mongo数据库读取的GraphQL服务器。

所以我有一些具有ID的文档:

4336-dummyDemo-00085984-dummyDemo-0001

我在其中保存了Mongo字段,并设置了@TextIndexed字段,以便我可以运行文本搜索-就像在我的解析器中一样:

fun song(options: SongOptions): List<Song> {
        val query = Query()

        if (options.textSearch.isNotBlank()) {
            val words = options.textSearch.split(SPACES)

            query.addCriteria(
                TextCriteria
                    .forDefaultLanguage()
                    .caseSensitive(false)
                    .diacriticSensitive(false)
                    .matchingAny(*words.toTypedArray())
            )
        }

        query.with(Sort.by(options.sortDirection, options.sortBy))
            .limit(options.limit)
            .skip(options.skip.toLong())

        return mongoTemplate.find(query, Song::class.java)
    }

如果我搜索options.textSearch,现在遇到的问题在我的搜索文本字段或上面的4336-dummyDemo-0008中-它同时返回4336-dummyDemo-00085984-dummyDemo-0001 。好像两者都与dummyDemo部分匹配。

我该如何解决这个问题,以便在我完成那个特定值时只返回一个项目?

任何想法表示赞赏。

谢谢。

0 个答案:

没有答案