Мне нужен строковый поиск с использованием pymongo MongoDB, который проверяет соответствие подстрок в ключе, независимо от порядка слов и фраз.PyMongo: подстроки не зависят от слов
Давайте посмотрим пример.
В моей коллекции есть документы, например, следующие:
{'_id':..., 'key': 'the foo'}
{'_id':..., 'key': 'the bar'}
{'_id':..., 'key': 'the baz'}
Если бы я искал 'key'
, 'Fo tHe'
, 'foo t'
или 'foo the'
в key
, я хотел бы получить {'_id':..., 'key': 'the foo'}
.
Лучшее решение, которое я нашел использует регулярное выражение с помощью PyMongo таким образом:
query = {'key': {'$regex' : my_string, '$options':'i'}}
mycollection.find(query)
Но это решение не распространяется на полностью мои требования. Например, он не возвращает документ, если my_string = 'foo the'
(инвертированный порядок слов).
Есть ли эффективный способ выполнения такого поиска текста в pymongo (MongoDB)?
Если я не ошибаюсь, индекс '$ text' не поддерживает частичное совпадение для подстроки ... – floatingpurr