Как индексировать по всем полям весной данные mongodb? - PullRequest
0 голосов
/ 24 января 2019

Скажем, у меня есть коллекция под названием кандидатов. Я хочу создать индекс text для всех полей в этой коллекции. В монго я знаю, что могу сделать это так

db.candidates.createIndex({"$**":"text"},{name:"TextIndex"}) 

Вот мое Ява Пойо или сущность.

@Document(collection = "candidates")
public class Candidate {

    @Id
    private String id;
    private String firstName;
    private String lastName;

   // Other stuff: removed for brevity
}

Теперь, как мне сделать db.candidates.createIndex({"$**":"text"},{name:"TextIndex"}) в Java? То есть, как мне проиндексировать все Pojo или как проиндексировать все поля в моей коллекции?

Этот вопрос пытался сделать то же самое, но в нем нет полной информации.

Также я посмотрел аннотацию @Indexed, но как я могу использовать ее для индексации всей коллекции, поскольку она может быть применена только к полю?

1 Ответ

0 голосов
/ 24 января 2019

С @TextIndexed вы можете по крайней мере проиндексировать все поля, которые вы хотите включить в свой индекс. https://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/index/TextIndexed.html

В качестве альтернативы вы можете использовать mongotemplate для этого. Как установить имя @TextIndex в объекте с помощью Spring-Data-MongoDB

...