текстовое поле расширенного поиска в MongoDB - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю над проектом онлайн-поиска.Его база данных - MongoDB. Я хочу создать текстовое поле поиска, которое будет работать следующим образом: если я хочу найти книгу
Автор - "Джо". Название - "Моя книга", а издатель - "tia"

* 1003.* Я хочу ввести в текстовое поле поиска: "joe my book tia" или "tia jo book"

, поэтому я получу за это результат.

АвторНазвание и издатель находятся в JSON на MongoDB

Может ли Some Body помочь мне?

Это пример JSON:

{"Автор": [{"id": "1", "name": "Joe", "фамилия": "Jeff"}, {"id": "1", "name": "Lama", "фамилия": "moon"}], "Title": "My Book", "Publisher": "tia"}

1 Ответ

0 голосов
/ 14 февраля 2019

MongoDB предоставляет текстовые индексы для поддержки запросов текстового поиска по строковому содержимому.в текстовые индексы может входить любое поле, значением которого является строка или массив строковых элементов.

В вашем случае вы можете запустить в оболочке mongo следующее, чтобы разрешить текстовый поиск по полям имени автора и издателя:

db.test.createIndex({ 'Author.name': 'text', 'Author.last_name': 'text', Publisher: 'text'})

Затем вы можете использовать следующий запрос, чтобы найти все документы, содержащие любые термины из списка «joe», «my», «book» и «tia».

db.test.find({ $text: { $search: "joe my book tia" } })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...