2014-03-31 10:13:18 -04:00
|
|
|
# This test creates one huge mapping in the setup
|
|
|
|
# Every test should use its own field to make sure it works
|
|
|
|
|
|
|
|
setup:
|
|
|
|
|
|
|
|
- do:
|
|
|
|
indices.create:
|
|
|
|
index: test
|
|
|
|
body:
|
|
|
|
mappings:
|
|
|
|
test:
|
|
|
|
"properties":
|
|
|
|
"suggest_context":
|
|
|
|
"type" : "completion"
|
|
|
|
"context":
|
|
|
|
"color":
|
|
|
|
"type" : "category"
|
|
|
|
"suggest_context_default_hardcoded":
|
|
|
|
"type" : "completion"
|
|
|
|
"context":
|
|
|
|
"color":
|
|
|
|
"type" : "category"
|
|
|
|
"default" : "red"
|
|
|
|
"suggest_context_default_path":
|
|
|
|
"type" : "completion"
|
|
|
|
"context":
|
|
|
|
"color":
|
|
|
|
"type" : "category"
|
|
|
|
"default" : "red"
|
|
|
|
"path" : "color"
|
|
|
|
"suggest_geo":
|
|
|
|
"type" : "completion"
|
|
|
|
"context":
|
|
|
|
"location":
|
|
|
|
"type" : "geo"
|
2014-04-02 17:30:17 -04:00
|
|
|
"precision" : "5km"
|
2014-03-31 10:13:18 -04:00
|
|
|
|
|
|
|
---
|
|
|
|
"Simple context suggestion should work":
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body:
|
|
|
|
suggest_context:
|
|
|
|
input: "Hoodie red"
|
|
|
|
context:
|
|
|
|
color: "red"
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 2
|
|
|
|
body:
|
|
|
|
suggest_context:
|
|
|
|
input: "Hoodie blue"
|
|
|
|
context:
|
|
|
|
color: "blue"
|
|
|
|
|
|
|
|
- do:
|
|
|
|
indices.refresh: {}
|
|
|
|
|
|
|
|
- do:
|
|
|
|
suggest:
|
|
|
|
body:
|
|
|
|
result:
|
|
|
|
text: "hoo"
|
|
|
|
completion:
|
|
|
|
field: suggest_context
|
|
|
|
context:
|
|
|
|
color: "red"
|
|
|
|
|
|
|
|
- match: {result.0.options.0.text: "Hoodie red" }
|
|
|
|
|
|
|
|
---
|
|
|
|
"Hardcoded category value should work":
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body:
|
|
|
|
suggest_context_default_hardcoded:
|
|
|
|
input: "Hoodie red"
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 2
|
|
|
|
body:
|
|
|
|
suggest_context_default_hardcoded:
|
|
|
|
input: "Hoodie blue"
|
|
|
|
context:
|
|
|
|
color: "blue"
|
|
|
|
|
|
|
|
- do:
|
|
|
|
indices.refresh: {}
|
|
|
|
|
|
|
|
- do:
|
|
|
|
suggest:
|
|
|
|
body:
|
|
|
|
result:
|
|
|
|
text: "hoo"
|
|
|
|
completion:
|
|
|
|
field: suggest_context_default_hardcoded
|
|
|
|
context:
|
|
|
|
color: "red"
|
|
|
|
|
|
|
|
- length: { result: 1 }
|
|
|
|
- length: { result.0.options: 1 }
|
|
|
|
- match: { result.0.options.0.text: "Hoodie red" }
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
"Category suggest context default path should work":
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body:
|
|
|
|
suggest_context_default_path:
|
|
|
|
input: "Hoodie red"
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 2
|
|
|
|
body:
|
|
|
|
suggest_context_default_path:
|
|
|
|
input: "Hoodie blue"
|
|
|
|
color: "blue"
|
|
|
|
|
|
|
|
- do:
|
|
|
|
indices.refresh: {}
|
|
|
|
|
|
|
|
- do:
|
|
|
|
suggest:
|
|
|
|
body:
|
|
|
|
result:
|
|
|
|
text: "hoo"
|
|
|
|
completion:
|
|
|
|
field: suggest_context_default_path
|
|
|
|
context:
|
|
|
|
color: "red"
|
|
|
|
|
|
|
|
- length: { result: 1 }
|
|
|
|
- length: { result.0.options: 1 }
|
|
|
|
- match: { result.0.options.0.text: "Hoodie red" }
|
|
|
|
|
|
|
|
- do:
|
|
|
|
suggest:
|
|
|
|
body:
|
|
|
|
result:
|
|
|
|
text: "hoo"
|
|
|
|
completion:
|
|
|
|
field: suggest_context_default_path
|
|
|
|
context:
|
|
|
|
color: "blue"
|
|
|
|
|
|
|
|
- length: { result: 1 }
|
|
|
|
- length: { result.0.options: 1 }
|
|
|
|
- match: { result.0.options.0.text: "Hoodie blue" }
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
"Geo suggest should work":
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body:
|
|
|
|
suggest_geo:
|
|
|
|
input: "Hotel Marriot in Amsterdam"
|
|
|
|
context:
|
|
|
|
location:
|
|
|
|
lat : 52.22
|
|
|
|
lon : 4.53
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test
|
|
|
|
type: test
|
|
|
|
id: 2
|
|
|
|
body:
|
|
|
|
suggest_geo:
|
|
|
|
input: "Hotel Marriot in Berlin"
|
|
|
|
context:
|
|
|
|
location:
|
|
|
|
lat : 53.31
|
|
|
|
lon : 13.24
|
|
|
|
|
|
|
|
- do:
|
|
|
|
indices.refresh: {}
|
|
|
|
|
2014-04-02 17:30:17 -04:00
|
|
|
- do:
|
|
|
|
indices.get_mapping: {}
|
|
|
|
|
2014-03-31 10:13:18 -04:00
|
|
|
- do:
|
|
|
|
suggest:
|
2014-04-02 17:30:17 -04:00
|
|
|
index: test
|
2014-03-31 10:13:18 -04:00
|
|
|
body:
|
|
|
|
result:
|
|
|
|
text: "hote"
|
|
|
|
completion:
|
|
|
|
field: suggest_geo
|
|
|
|
context:
|
|
|
|
location:
|
|
|
|
lat : 52.22
|
|
|
|
lon : 4.53
|
|
|
|
|
|
|
|
- length: { result: 1 }
|
|
|
|
- length: { result.0.options: 1 }
|
|
|
|
- match: { result.0.options.0.text: "Hotel Marriot in Amsterdam" }
|
|
|
|
|