defmodule PhilomenaQuery.Search.Index do @moduledoc """ Behaviour module for schemas with search indexing. """ @doc """ Returns the index name for the index. This is usually a collection name like "images". See https://opensearch.org/docs/latest/api-reference/index-apis/create-index/ for reference on index naming restrictions. """ @callback index_name() :: String.t() @doc """ Returns the mapping and settings for the index. See https://opensearch.org/docs/latest/api-reference/index-apis/put-mapping/ for reference on the mapping syntax, and the following pages for which types may be used in mappings: - https://opensearch.org/docs/latest/field-types/ - https://opensearch.org/docs/latest/analyzers/index-analyzers/ """ @callback mapping() :: map() @doc """ Returns the JSON representation of the given struct for indexing in OpenSearch. See https://opensearch.org/docs/latest/api-reference/document-apis/index-document/ for reference on how this value is used. """ @callback as_json(struct()) :: map() end