Alexander Reelsen e547e113e1 Geo context suggester: Require precision in mapping
The default precision was way too exact and could lead people to
think that geo context suggestions are not working. This patch now
requires you to set the precision in the mapping, as elasticsearch itself
can never tell exactly, what the required precision for the users
suggestions are.

Closes #5621
2014-04-02 23:51:14 +02:00

225 lines
4.8 KiB
YAML

# 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"
"precision" : "5km"
---
"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: {}
- do:
indices.get_mapping: {}
- do:
suggest:
index: test
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" }