В соответствии с руководством MongoDB вы можете использовать оператор $regex
:
collection.findOne({Name: { $regex: '.*world_no_safe.*' }});
Вам нужно присвоить индекс как «not_analyzed»
"Date of birth": {
"type": "text",
"index" : "not_analyzed"
},
Давайте попробуем это с минимальным примером (добавленным через консоль в Kibana, но вы сможете легко изменить его на простые команды curl):
PUT test
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"_doc": {
"dynamic": "strict",
"properties": {
"family name": {
"type": "text",
"index": "true"
},
"Firstname": {
"type": "text",
"index": "true"
},
"Date of birth": {
"type": "text",
"index": "false"
}
}
}
}
}
PUT /test/_doc/1
{
"family name": "foo",
"Firstname": "bar",
"Date of birth": "baz"
}
Это работает для меня. Я могу найти foo
и bar
, но не baz
:
Также после обновления шаблона индекса дата поле рождения не может быть ни найдено, ни найдено:
Некоторые быстрые наблюдения:
true
или false
. Это в другой области, поэтому, вероятно, не связано с вашей проблемой.