Search code examples
javascriptarcgisarcmaparcgis-js-api

esri/dijit/Search javascript version 3.13 different source not creating suggestions


I am trying to reproduce the esri/dijit/Search tutorial that is new in the 3.13 release of the ArcGIS API for JavaScript with one of my own layers.

Esri Sample

  <!DOCTYPE html>
<html><link rel="stylesheet" href="http://js.arcgis.com/3.13/esri/css/esri.css">
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
       <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
       <title>ArcGIS API for JavaScript | Search widget with multiple sources</title>
       <link rel="stylesheet" href="http://js.arcgis.com/3.13/dijit/themes/claro/claro.css">
       <link rel="stylesheet" href="http://js.arcgis.com/3.13/esri/css/esri.css">
       <style>
          html,
          body,
          #map {
             height: 100%;
             width: 100%;
             margin: 0;
             padding: 0;
          }
          #search {
             display: block;
             position: absolute;
             z-index: 2;
             top: 20px;
             left: 74px;
          }
       </style>


    <script src="http://js.arcgis.com/3.13/"></script>
       <script>
          require([
            "esri/map", "esri/dijit/Search", "esri/layers/FeatureLayer", "esri/InfoTemplate", "esri/SpatialReference", "esri/geometry/Extent", "dojo/domReady!"
          ], function (Map, Search, FeatureLayer, InfoTemplate, SpatialReference, Extent) {
             var map = new Map("map", {
                basemap: "gray",
                center: [-97, 38], // lon, lat
                zoom: 5
             });

             var s = new Search({
                enableButtonMode: true, //this enables the search widget to display as a single button
                enableLabel: false,
                enableInfoWindow: true,
                showInfoWindowOnSelect: false,
                map: map
             }, "search");

             var sources = [];

             sources.push({
                featureLayer: new FeatureLayer("http://maps.eastriding.gov.uk/arcgis/rest/services/GISIntranet/MapServer/0"),
                searchFields: ["ADDRESS_WITHOUT_BREAKS"],
                displayField: "ADDRESS_WITHOUT_BREAKS",
                exactMatch: false,
                name: "ADDRESS_WITHOUT_BREAKS",
                outFields: ["*"],
                placeholder: "ADDRESS_WITHOUT_BREAKS",
                maxResults: 6,
                maxSuggestions: 6,

                enableSuggestions: true,
                minCharacters: 0
             });

             //Set the sources above to the search widget
             s.set("sources", sources);

             s.startup();

          });
       </script>
    </head>

    <body>
       <div id="search"></div>
       <div id="map"></div>
    </body>

    </html>

I am having with the suggestions part if it. If I use the default source for this it will for fine. I will enter the first few character in the textbox and it will produce a number of suggestion that I can choose from. When I use my own source (as above) there is no suggestions that appear. I have check for errors and there are none. I have also checked the network in my Dev tools and the suggestions part is not firing off a query like the default source does.

I am wondering if I need something special setting up on my layer or should it just work

Thanks


Solution

  • From the API documentation

    Working with suggestions is only available if working with a 10.3 geocoding service that has the suggest capability loaded or a 10.3 feature layer that supports pagination, i.e. supportsPagination = true.

    Looking at your server you are running 10.2.2 so you need to move to 10.3 and make sure you allow pagination for your service in order to get this capability.