summaryrefslogtreecommitdiffstats
path: root/vsm
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-01-28 11:32:09 +0000
committerArne H Juul <arnej@yahooinc.com>2022-01-28 11:32:09 +0000
commit687621f3fceaba5e0e649a94cb0a8486a082bd31 (patch)
tree0cf05e5ee8c21f4718fff57b3dfb8b1149dc086d /vsm
parent2062751bf548d9df60aa831bb402dcfb176cdc1d (diff)
add new searchmethod GEOPOS
Diffstat (limited to 'vsm')
-rw-r--r--vsm/src/vespa/vsm/config/vsmfields.def2
-rw-r--r--vsm/src/vespa/vsm/vsm/fieldsearchspec.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/vsm/src/vespa/vsm/config/vsmfields.def b/vsm/src/vespa/vsm/config/vsmfields.def
index 21d7d72eb0b..5e943c9274d 100644
--- a/vsm/src/vespa/vsm/config/vsmfields.def
+++ b/vsm/src/vespa/vsm/config/vsmfields.def
@@ -12,7 +12,7 @@ searchall int default=1
fieldspec[].name string
## The search method for a given field. Note: same field in 2 different document types must match on type if not a random result might be expected.
-fieldspec[].searchmethod enum { NONE, BOOL, AUTOUTF8, UTF8, SSE2UTF8, INT8, INT16, INT32, INT64, FLOAT16, FLOAT, DOUBLE } default=AUTOUTF8
+fieldspec[].searchmethod enum { NONE, BOOL, AUTOUTF8, UTF8, SSE2UTF8, INT8, INT16, INT32, INT64, FLOAT16, FLOAT, DOUBLE, GEOPOS } default=AUTOUTF8
fieldspec[].arg1 string default=""
## Maximum number of chars to search per field.
diff --git a/vsm/src/vespa/vsm/vsm/fieldsearchspec.cpp b/vsm/src/vespa/vsm/vsm/fieldsearchspec.cpp
index 8fe85a9023a..7043e63ec87 100644
--- a/vsm/src/vespa/vsm/vsm/fieldsearchspec.cpp
+++ b/vsm/src/vespa/vsm/vsm/fieldsearchspec.cpp
@@ -10,6 +10,7 @@
#include <vespa/vsm/searcher/intfieldsearcher.h>
#include <vespa/vsm/searcher/boolfieldsearcher.h>
#include <vespa/vsm/searcher/floatfieldsearcher.h>
+#include <vespa/vsm/searcher/geo_pos_field_searcher.h>
#include <vespa/vespalib/stllike/asciistream.h>
#include <regex>
@@ -105,6 +106,9 @@ FieldSearchSpec::FieldSearchSpec(const FieldIdT & fid, const vespalib::string &
case VsmfieldsConfig::Fieldspec::Searchmethod::DOUBLE:
_searcher = std::make_unique<DoubleFieldSearcher>(fid);
break;
+ case VsmfieldsConfig::Fieldspec::Searchmethod::GEOPOS:
+ _searcher = std::make_unique<GeoPosFieldSearcher>(fid);
+ break;
}
if (_searcher) {
setMatchType(_searcher, arg1);