2016-02-07 2 views
1

У меня есть текстовый индекс для определенного поля, а не индекс текста дикой карты. # Драйвер C, кажется, не имеют параметр, чтобы передать имя поля, хотя:MongoDB Full-TextSearch C# драйвер

public FilterDefinition<TDocument> Text(string search, TextSearchOptions options = null); 

Как сказать Монго, что поле Я хочу искать?

+1

Текстовые индексы «определяют» поля, в которых выполняется поиск, а не условие поиска. В коллекции может быть только один текстовый индекс, поэтому нет необходимости указывать поле. Не проблема с драйвером, а только то, как работает поиск текста. См. Оператор ['$ text'] (https://docs.mongodb.org/manual/reference/operator/query/text/). –

+0

, пожалуйста, прочитайте ссылку: https://stackoverflow.com/questions/40915209/mongodb-net-driver-and-text-search/48677313#48677313 –

+0

@TolgaKabadurmus Это разные вопросы. – BanksySan

ответ

0

Как упоминалось в Blakes, MongoDB может иметь только один полный текстовый индекс для каждой коллекции, поэтому вам не нужно указывать, в каком поле искать. MongoDB знает, где искать.

Он будет искать любое поле, включенное в текстовый индекс. Однако, если вам нужен полный контроль, вы можете использовать $ regex и не использовать полнотекстовый поиск.

Смежные вопросы