From daa69416726276f9c99d20d868b67205adcb238e Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sun, 28 Jun 2015 13:48:53 +0900 Subject: [PATCH] Work in progress --- server.go | 16 +++++++++++++--- static/scripts/search.js | 11 ++++++++++- types.go | 4 ++-- util.go | 4 ++++ 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/server.go b/server.go index f5ed98d..29c6965 100644 --- a/server.go +++ b/server.go @@ -52,14 +52,24 @@ func executeQuery(rw http.ResponseWriter, req *http.Request) { entries := getRecords(queryContext{geo, request.Profile, request.WalkingDist}) features := fixFeatures(request.Features) - foundEntries := findRecords(entries, features, request.MinScore) + minScore := request.MinScore + if request.Bracket != nil { + bracket := namedBracket{ + request.Bracket.Name, + request.Bracket.Min, + request.Bracket.Max} + + minScore = calibrateMinScore(entries, features, bracket) + } + + foundEntries := findRecords(entries, features, minScore) sorter := recordSorter{entries: foundEntries, key: request.SortKey, ascending: request.SortAsc} sorter.sort() response := jsonQueryResponse{ Count: len(foundEntries), Columns: make(map[string]jsonColumn), - MinScore: request.MinScore, + MinScore: minScore, Records: make([]jsonRecord, 0)} for name, value := range features { @@ -72,7 +82,7 @@ func executeQuery(rw http.ResponseWriter, req *http.Request) { entries, features, name, - request.MinScore, + minScore, request.Resolution) for _, hint := range hints { diff --git a/static/scripts/search.js b/static/scripts/search.js index 6242b68..9553131 100644 --- a/static/scripts/search.js +++ b/static/scripts/search.js @@ -27,7 +27,16 @@ function onStateChanged(name, value, bracket) { _ctx.query.features[name] = value; - _ctx.query.bracket = bracket === null ? null : {name: name, bracket: bracket}; + if (bracket === null) { + _ctx.query.bracket = null; + } + else { + _ctx.query.bracket = { + name: name, + min: bracket.min, + max: bracket.max + }; + } $.post('/query', JSON.stringify(_ctx.query), function(results) { saveSnapshot(results); diff --git a/types.go b/types.go index a074627..c9edcf3 100644 --- a/types.go +++ b/types.go @@ -80,8 +80,8 @@ type jsonBracket struct { } type jsonNamedBracket struct { - Bracket jsonBracket `json:"bracket"` - Name string `json:"name"` + jsonBracket + Name string `json:"name"` } type jsonQueryResponse struct { diff --git a/util.go b/util.go index 14567d5..6e02c6a 100644 --- a/util.go +++ b/util.go @@ -100,6 +100,10 @@ func findRecords(entries records, features featureMap, minScore float64) records return foundEntries } +func calibrateMinScore(entries records, features featureMap, bracket namedBracket) float64 { + return 2 +} + func project(entries records, features featureMap, featureName string, minScore float64, steps int) []queryProjection { sampleFeatures := make(featureMap) for key, value := range features {