More in this section

Forums / General Discussions / set properties for custom fields in search index

set properties for custom fields in search index

1 posts, 0 answered
  1. Vince
    Vince avatar
    1 posts
    21 Apr 2016
    09 Oct 2016
    Link to this post


    It seems that all fields that are pushed to be indexed in a back-end search engine are tokenised. I would like one of my custom fields to be non-tokenised by elasticsearch.

    This is a standard feature of elasticsearch and is determined by setting a value of "not_analyzed" on the "index" property for the field. However the index propertyfor a field must be specified either when the index is created, or before any documents have been indexed. Sitefinity is responsible for the creation of the index, and I do not see any handle to customise properties of custom fields. They are all created with a type of "string" and default values for all other properties.

    Is there a way to customise how Sitefinity creates a new index in Elasticsearch, or to change a property of a custom field?

    At the moment, my solution is a manual process. When  using the "re-index" action on an existing index (under "Administration" -> "Search indexes"), which forces the deletion and re-creation of an index in elasticsearch, there is then a window of a few seconds before any documents are pushed in which I can run a command directly on the elasticsearch service to customise my fields -

    curl -XPOST localhost:9200/myindex/_mapping -d'{"properties":{"myCustomField":{"type":"string","index":"not_analyzed"},}}'

    It does work, but it would be much better to have this handled automatically by Sitefinity when it creates the index.




1 posts, 0 answered