12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- [[return-suggesters-type]]
- ==== Returning the type of the suggester
- Sometimes you need to know the exact type of a suggester in order to parse its results. The `typed_keys` parameter
- can be used to change the suggester's name in the response so that it will be prefixed by its type.
- Considering the following example with two suggesters `term` and `phrase`:
- [source,console]
- --------------------------------------------------
- POST _search?typed_keys
- {
- "suggest": {
- "text" : "some test mssage",
- "my-first-suggester" : {
- "term" : {
- "field" : "message"
- }
- },
- "my-second-suggester" : {
- "phrase" : {
- "field" : "message"
- }
- }
- }
- }
- --------------------------------------------------
- // TEST[setup:twitter]
- In the response, the suggester names will be changed to respectively `term#my-first-suggester` and
- `phrase#my-second-suggester`, reflecting the types of each suggestion:
- [source,console-result]
- --------------------------------------------------
- {
- "suggest": {
- "term#my-first-suggester": [ <1>
- {
- "text": "some",
- "offset": 0,
- "length": 4,
- "options": []
- },
- {
- "text": "test",
- "offset": 5,
- "length": 4,
- "options": []
- },
- {
- "text": "mssage",
- "offset": 10,
- "length": 6,
- "options": [
- {
- "text": "message",
- "score": 0.8333333,
- "freq": 4
- }
- ]
- }
- ],
- "phrase#my-second-suggester": [ <2>
- {
- "text": "some test mssage",
- "offset": 0,
- "length": 16,
- "options": [
- {
- "text": "some test message",
- "score": 0.030227963
- }
- ]
- }
- ]
- },
- ...
- }
- --------------------------------------------------
- // TESTRESPONSE[s/\.\.\./"took": "$body.took", "timed_out": false, "_shards": "$body._shards", "hits": "$body.hits"/]
- // TESTRESPONSE[s/"score": 0.8333333/"score": $body.suggest.term#my-first-suggester.2.options.0.score/]
- // TESTRESPONSE[s/"score": 0.030227963/"score": $body.suggest.phrase#my-second-suggester.0.options.0.score/]
- <1> The name `my-first-suggester` now contains the `term` prefix.
- <2> The name `my-second-suggester` now contains the `phrase` prefix.
|