anchor.diff:        ]}
       },
   
  -  "add-field":{ "name":"name",     "type":"text_general"},
  -
  -  "add-field":{ "name":"name_tag", "type":"tag",          "stored":false },
  -
  -  "add-copy-field":{ "source":"name", "dest":[ "name_tag" ]}
  +  "add-field":{"name":"name", "type":"text_general"},
  +
  +  "add-field":{"name":"name_tag", "type":"tag", "stored":false },
  +
  +  "add-copy-field":{"source":"name", "dest":["name_tag"]}
   }'
  -....
  +----
   
   Configure a custom Solr Request Handler:
   
  -....
  +[source,bash]
  +----
   curl -X POST -H 'Content-type:application/json' http://localhost:8983/solr/geonames/config -d '{
     "add-requesthandler" : {
       "name": "/tag",
       "class":"solr.TaggerRequestHandler",
  -    "defaults":{ "field":"name_tag" }
  +    "defaults":{"field":"name_tag"}
     }
   }'
  -....
  +----
   
   [[tagger-load-some-sample-data]]
   === Load Some Sample Data
  
positive.code: experimentation and getting going fast but not for production or being
  optimal.
  
  ....
  bin/solr create -c geonames
  ....
  
  [[tagger-configuring]]
  ==== Configuring
  
  We need to configure the schema first. The "data driven" mode we're
  using allows us to keep this step fairly minimal -- we just need to
  declare a field type, 2 fields, and a copy-field. The critical part
  up-front is to define the "tag" field type. There are many many ways to
  configure text analysis; and we're not going to get into those choices
  here. But an important bit is the `ConcatenateGraphFilterFactory` at the
  end of the index analyzer chain. Another important bit for performance
  is postingsFormat=FST50 resulting in a compact FST based in-memory data
  structure that is especially beneficial for the text tagger.
  
  Schema configuration:
  
  ....
  curl -X POST -H 'Content-type:application/json'  http://localhost:8983/solr/geonames/schema -d '{
    "add-field-type":{
      "name":"tag",
  
negative.code: population.
  
  Using bin/post:
  [source,bash]
  ----
  bin/post -c geonames -type text/csv \
    -params 'optimize=true&separator=%09&encapsulator=%00&fieldnames=id,name,,alternative_names,latitude,longitude,,,countrycode,,,,,,population,elevation,,timezone,lastupdate' \
    /tmp/cities1000.txt
  ----
  
  or using curl:
  
  [source,bash]
  ----
  curl -X POST --data-binary @/path/to/cities1000.txt -H 'Content-type:application/csv' \
    'http://localhost:8983/solr/geonames/update?commit=true&optimize=true&separator=%09&encapsulator=%00&fieldnames=id,name,,alternative_names,latitude,longitude,,,countrycode,,,,,,population,elevation,,timezone,lastupdate'
  ----
  
  That might take around 35 seconds; it depends. It can be a lot faster if
  the schema were tuned to only have what we truly need (no text search if
  not needed).
  
  In that command we said `optimize=true` to put the index in a state that
  will make tagging faster. The `encapsulator=%00` is a bit of a hack to
  disable the default double-quote.
  
  === Tag Time!
  
  This is a trivial example tagging a small piece of text. For more
  options, see the earlier documentation.
  
  [source,bash]
  ----
  curl -X POST \
    'http://localhost:8983/solr/geonames/tag?overlaps=NO_SUB&tagsLimit=5000&fl=id,name,countrycode&wt=json&indent=on' \
    -H 'Content-Type:text/plain' -d 'Hello New York City'
  ----
  
  The response should be this (the QTime may vary):
  
  [source,json]
  ----
  {
    "responseHeader":{
      "status":0,
  