Configure Entity Search

Entity searches allow users to run an additional entity search against a special IDOL Content component.

When you configure entity search, users can select text in the Find user interface and it opens a dialog box with search results from the entity Content. You can also configure an Answer Server, in which case the dialog box includes a question input field.

You configure entity search by adding the entitySearch section to your config.json configuration file, with details of the search components to use, and any custom fields.

To configure entity search

  1. Go to the Find home directory.
  2. Open config.json in a text editor.
  3. Find or add the entitySearch section.

  4. Set the enabled property to true to enable entity search.

  5. Add a server property to set the details for your entity search component. This property is an object, which accepts the subproperties described in the following table. In most cases, you must change at least host and port to the appropriate values for your IDOL Content component.

    host (String) The host name or IP address of the component to use for entity search. The default value is localhost.
    port (Integer) The port of the component to use for entity search. The default value is 9050.
    protocol (String) The protocol to use to connect to the IDOL Content component. The default value is HTTP.
  6. To enable an Answer Server to use for entity search, add an answerServer property. This property is an object.

    To enable Answer Server, set the enabled subproperty to true and add a server subproperty to set the details for your entity search Answer Server.

    This server object contains the same subproperties as for the main entity search component (see Step 5), with the following default values:

    "server": {
       "protocol": "HTTP",
       "host": "localhost",
       "port": 7700
    }

    In most cases, you must change at least host and port to the appropriate values for your Answer Server.

    In the answerServer object, you can optionally also set systemNames to an array of Answer Server systems that you want to query. By default, Find uses all systems.

  7. Set any additional optional parameters in the entitySearch object. The following table lists the available parameters.

    absWeight (Boolean) Set to true to use the AbsWeight parameter in the entity search, to return result weighting as absolute values rather than percentages. The default value is false. For more information about AbsWeight, refer to the IDOL Server Reference.
    agentBooleanField

    (String) A field in your entity search index that contains AgentBoolean expressions. For more information, refer to the IDOL Server Reference.

    combine (String) The combine option to use in queries to the entity search Content. For more information, refer to the IDOL Server Reference.
    databaseChoices

    (Object) The database options to provide to users to control the databases that Find searches when a user highlights text for entity search. The databaseChoices object contains a property for each option that you want to display in the database group list. The key (the name of the property) is the display name to use in Find. Set the property to an array of the IDOL databases to use for this option.

    For example, "Places" : ["Places", "PlacesExtended"] creates a Places database option in the Find user interface and maps it to the Places and PlacesExtended IDOL databases.

    TIP: In your HTML, you can control the database group to use when a user highlights the text in a particular HTML element, by using the data-entity-search-database-group HTML attribute. This attribute sets a default database group to use for a particular element.

    For example, if you have an element that displays place names, you might set the attribute data-entity-search-database-group="Places". If the user has selected a database group, their explicit selection takes precedence.

    You can use this option in a custom template (see Configure Templates).

    databaseChoicesVisible (Boolean) Whether to display a menu in the user interface to allow users to explicitly choose a database group.
    idolPrintFields (Array, strings) A list of fields from your IDOL documents to display in the entity search results.
  8. Save the file, and then restart Find to apply your configuration changes.

For example:

"entitySearch" : {
   "server" : {
      "protocol" : "HTTP",
      "host" : "entitycontent.example.com",
      "port" : 9000
   },
   "enabled" : true,
   "agentBooleanField" : "AGENTBOOL",
   "combine" : "FieldCheck",
   "idolPrintFields" : [ "WIKIPEDIA_ENG", "WIKIPEDIA_IMAGE", "PERSON_DATE_OF_BIRTH", "PERSON_DATE_OF_DEATH", "PERSON_PROFESSION", "WIKIPEDIA_IMAGE", "LAT", "LON", "PLACE_COUNTRY_CODE", "PLACE_REGION1", "PLACE_POPULATION", "PLACE_TIMEZONE", "WIKIPEDIA_IMAGE", "URL_HOMEPAGE", "COMPANY_GOOGLE" ],
   "databaseChoices" : {
      "All": ["*"],
      "People" : ["People"],
      "Companies" : ["Companies"],
      "Places" : ["Places", "PlacesExtended"]
   },
   "databaseChoicesVisible": true,
   "answerServer": {
      "server": {
         "protocol": "HTTP",
         "host": "10.2.21.210",
         "port": 16000
      },
      "systemNames": ["FactBank", "PassageExtractor"],
      "enabled": true
   }
}

After you configure entity search, you might also want to configure a custom template to display entity search results. See Configure Templates.