Description
build: 6.6.0 - 7920
steps to reproduce:
- create default bucket
- load the following documents:
{
|
"default": { |
"filler": "filler", |
"num": 1, |
"str": "string_1" |
},
|
"id": "doc_1" |
}
|
{
|
"default": { |
"filler": "filler", |
"num": 2, |
"str": "string_2" |
},
|
"id": "doc_2" |
}
|
....
|
{
|
"default": { |
"filler": "filler", |
"num": 10, |
"str": "string_10" |
},
|
"id": "doc_10" |
}
|
- create default fts index on default bucket:
{
|
"name": "idx1", |
"type": "fulltext-index", |
"params": { |
"doc_config": { |
"docid_prefix_delim": "", |
"docid_regexp": "", |
"mode": "type_field", |
"type_field": "type" |
},
|
"mapping": { |
"default_analyzer": "standard", |
"default_datetime_parser": "dateTimeOptional", |
"default_field": "_all", |
"default_mapping": { |
"dynamic": true, |
"enabled": true |
},
|
"default_type": "_default", |
"docvalues_dynamic": true, |
"index_dynamic": true, |
"store_dynamic": false, |
"type_field": "_type" |
},
|
"store": { |
"indexType": "scorch" |
}
|
},
|
"sourceType": "couchbase", |
"sourceName": "default", |
"sourceUUID": "25445d2a40758a64bb34564ff9f916eb", |
"sourceParams": {}, |
"planParams": { |
"maxPartitionsPerPIndex": 171, |
"indexPartitions": 6, |
"numReplicas": 0 |
},
|
"uuid": "6e434e3e9afc7bc0" |
}
|
|
Try to run the following query:
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> http://<your ip address>:8094/api/index/idx1/query -d '{"explain": false, "fields": ["*"], "highlight": {}, "query": {"query": "filler:filler"},"size": 2, "from":0, "search_before": [5, "doc_5"], "sort": ["num", "_id"]}' |
It returns the following error response:
{
|
"error": "rest_index: Query, indexName: idx1, err: bleve: QueryBleve parsing searchRequest, err: cbft.SearchRequest: Sort: []json.RawMessage: SearchBefore: []string: ReadString: expects \" or n, but found 5, error found in #10 byte of ...|efore\": [5, \"doc_5\"]|..., bigger context ...|:filler\"},\"size\": 2, \"from\":0, \"search_before\": [5, \"doc_5\"], \"sort\": [\"num\", \"_id\"]}|...", |
"request": { |
"explain": false, |
"fields": [ |
"*" |
],
|
"from": 0, |
"highlight": {}, |
"query": { |
"query": "filler:filler" |
},
|
"search_before": [ |
5, |
"doc_5" |
],
|
"size": 2, |
"sort": [ |
"num", |
"_id" |
]
|
},
|
"status": "fail" |
}
|
Key point is: when I'm using any other datatype than string as search_before/search_after parameter, this query fails.