MongoDB zezwala tylko na jeden indeks tekstowy na kolekcję.
Ale możesz użyć indeksu tekstowego, który obejmuje wiele pól:
db.collection.ensureIndex( {
description: "text",
title: "text"
} );
W ten sposób otrzymasz wyniki, gdy szukana fraza zostanie znaleziona w którymkolwiek z nich. Jeśli tego nie chcesz, na przykład gdy masz dwa zapytania wyszukiwania, z których każde zwraca wyniki z jednego pola, ale nie z drugiego, masz dwie opcje.
- użyj wielopolowego indeksu tekstowego, ale odrzuć wyniki, które pochodzą z niewłaściwego pola w warstwie aplikacji.
- wyodrębnij jedno z dwóch pól do innej kolekcji. Dokumenty w tej kolekcji mogą zawierać pełne kopie, zredagowane kopie lub tylko indeksowane pole i
_id
oryginalnego dokumentu.