search: interpolation results included for layers=-address
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 259
- Forks
- 169
- Avg merge
- 6h 15m
- Merged PRs (30d)
- 1
Description
When interpolations are generated, they are always of type address, however it's possible for the API to return these results even when the layers are specified in a way that excludes the address layer.
For example: https://pelias.github.io/compare/#/v1/search?layers=street&text=10+Brunswick+Street%2C+VIC
In this case the query specifically requested layers=street yet the result set contains rows from the address layer.
The cause of this issue is in the interpolationShouldExecute predicate, which should take into account the requested layers and not execute if the address layer is not targeted:
https://github.com/pelias/api/blob/e6f532b18577c8436a10651c07e5a2e9f5fdb1ea/routes/v1.js#L182-L187
Note: this should also improve performance for these queries.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Open routes/v1.js around the interpolationShouldExecute predicate and reproduce the linked search request with layers=street. Update the predicate behavior so interpolation results do not appear when address is excluded, while address-targeting requests continue to work. Verify both cases using the API search example.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, search
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100