Поиск текста в Монго: Поиск имени элемента, который содержит пробелы - PullRequest
0 голосов
/ 29 июня 2018

У меня есть коллекция в MongoDB, которая выглядит примерно так (все остальные поля для ясности опущены)

{ "name" : "Toyota Camry" },
{ "name" : "Fort Taurus" },
{ "name" : "Ford Fiesta" }

То, что я хочу сделать, - это определить предложения, в которых эти элементы отображаются как «все включено». Например, тексты:

  • " В прошлом году мы с приятелем арендовали Ford Fiesta "
  • " В Мексике в июне большая фиеста мертвых "

Мне нужен какой-то способ запроса MongoDB, поэтому он даст мне совпадение с Ford Fiesta , но не совпадет с Fiesta

Я пытался использовать текстовый индекс, но это швы, чтобы вернуть все. В идеале, концепция

«Возьмите эту строку текста и посмотрите, содержит ли она какие-либо сохраненные элементы в базе данных»

ДАЖЕ ЛУЧШЕ:

Если я смогу получить ДЛИННЕЕ совпадение (т. Е. Если есть «Форд Фиеста» и «Форд Фиеста Турбо», то я бы хотел, чтобы последнее ТОЛЬКО, если оно находится в тексте.

Есть хорошие идеи? Это выполнимо?

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете искать конкретику, используя индекс текста с подстановочными знаками

db.collection.createIndex( { "$**": "text" } )

, а затем выполните следующее

{"$text" : {"$search" : "\"<insert term here>\""}}

Это вернет только те строки, которые ТОЧНО соответствуют вашему тексту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...