Я бы предложил воссоздать индекс с помощью RESTHeart вместо оболочки Mongo.
Сначала удалите индекс с помощью оболочки, затем создайте его снова, следуя примерам: https://restheart.org/learn/indexes/
Например, вы можете создать именованный индекс для коллекции tags
с помощьюследующее:
PUT /db/tags/_indexes/<index_id> {"keys": {"title": "text" }}
HTTP/1.1 201 Created
Тогда, пожалуйста, дайте нам знать, если это работает.
Обновлено :
Вот что я сделал, чтобы успешно протестировать полныйтекстовый поиск в RESTHeart (кстати, я использую httpie-клиент, но curl будет работать аналогично):
- перейдите в папку RESTHeart
- запустите RESTHeart в доке с
docker-compose up
Затем введите следующие команды:
Создание базы данных
http -a admin:changeit PUT http://localhost:8080/mydb
Создание коллекции
http -a admin:changeit PUT http://localhost:8080/mydb/sample
Примеры документов POST
http -a admin:changeit POST http://localhost:8080/mydb/sample < sample.json
Создание индекса коллекции с именем "about", который использует элемент "about" в документах JSON для индексации и поиска текста
http -j -a admin:changeit PUT http://localhost:8080/mydb/sample/_indexes/about keys:='{"about":"text"}}'
Проверка индекса
http -a admin:changeit GET http://localhost:8080/mydb/sample/_indexes
Выполнение успешного полнотекстового поиска
http -a admin:changeit GET http://localhost:8080/mydb/sample?filter='{"$text":{"$search":"\"Consequat fugiat commodo irure\""}}'
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Location, ETag, Auth-Token, Auth-Token-Valid-Until, Auth-Token-Location, X-Powered-By
Auth-Token: 240ym6d4sbxujjl8qa0ezslyfcpx7tmrjo4lfqmcxx9uirjjcs
Auth-Token-Location: /_authtokens/admin
Auth-Token-Valid-Until: 2018-09-19T07:46:37.717Z
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 793
Content-Type: application/json
Date: Wed, 19 Sep 2018 07:31:37 GMT
ETag: 5ba11d9aa7b11b0006d54c5f
X-Powered-By: restheart.org
{
"_embedded": [
{
"_etag": {
"$oid": "5ba11db6a7b11b0006d54c61"
},
"_id": "5ba11d3ffb91c9eb48eee9f2",
"about": "Nulla pariatur eu dolor ad fugiat cillum. Ex consectetur id velit officia veniam pariatur nisi ea et nisi aliquip reprehenderit adipisicing incididunt. Exercitation esse mollit in pariatur eiusmod veniam quis est consequat ad. Fugiat eu excepteur fugiat incididunt et. Consequat fugiat commodo irure id magna in magna minim non anim amet. Officia ipsum veniam excepteur consequat labore.",
"address": "923 Sheffield Avenue, Wescosville, California, 2455",
"age": 20,
"balance": "$1,335.75",
"company": "FLEXIGEN",
"email": "terra.gross@flexigen.name",
"eyeColor": "blue",
"favoriteFruit": "strawberry",
"friends": [
{
"id": 0,
"name": "May Rowland"
},
{
"id": 1,
"name": "Schmidt Herman"
},
{
"id": 2,
"name": "Saundra Shepard"
}
],
"greeting": "Hello, Terra! You have 6 unread messages.",
"guid": "c529609b-8535-4aea-a386-d3861e3fe831",
"index": 3,
"isActive": false,
"latitude": "-43.467295",
"longitude": "114.929505",
"name": {
"first": "Terra",
"last": "Gross"
},
"phone": "+1 (956) 474-2649",
"picture": "http://placehold.it/32x32",
"range": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"registered": "Saturday, February 17, 2018 1:13 PM",
"tags": [
"excepteur",
"velit",
"sint",
"sit",
"eu"
]
}
],
"_etag": {
"$oid": "5ba11d9aa7b11b0006d54c5f"
},
"_id": "sample",
"_returned": 1
}
Вы найдете файл sample.json.zip во вложении.
Я бы предложил сравнить вышеуказанные шаги счто вы делаете, и посмотрите, есть ли заметные различия.