@searchkit/apollo-resolvers
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0-canary.24 • Public • Published

    Searchkit

    Searchkit Apollo Resolvers

    npm version

    Searchkit Apollo Resolvers is a library which allows you to build a Search API designed for Search UI experiences on top of Apollo Server. It integrates with Elasticsearch to provide search features like full-text search, faceted filtering and query highlighting.

    Documentation

    All Searchkit documentation can be found at:
    https://searchkit.co/docs/

    The Searchkit Apollo Resolvers API reference can be found at:
    https://searchkit.co/docs/reference/apollo-resolvers

    Quick Intro

    From a configuration

    const searchkitConfig = {
      host: 'https://localhost:9200',
      index: 'movies',
      hits: {
        fields: [ 'title', 'plot', 'poster' ]
      },
      query: new MultiMatchQuery({ 
        fields: [ 'plot','title^4'] 
      }),
      facets: [
        new RefinementSelectFacet({ 
          field: 'type.raw',
          identifier: 'type',
          label: 'Type'
        }),
        new RefinementSelectFacet({
          field: 'writers.raw',
          identifier: 'writers',
          label: 'Writers',
          multipleSelect: true
        }),
        new RangeFacet({
          field: 'metaScore',
          identifier: 'metascore',
          label: 'Metascore',
          range: {
            min: 0,
            max: 100,
            interval: 5
          }
        }),
        new DateRangeFacet({
          field: 'released',
          identifier: 'released',
          label: 'Released'
        })
      ]
    }

    Will provide a GraphQL API where you can perform queries like:

    Simple Hits

    Try it out

    {
      results(query: "heat") {
        hits {
          items {
            id
            fields {
              title
            }
          }
        }
      }
    }

    Facets

    Try it out

    {
      results(query: "heat") {
        facets {
          id
          label
          type
          display
          entries {
            id
            label
            count
          }
        }
        hits {
          items {
            id
            fields {
              title
            }
          }
        }
      }
    }

    Filtering

    Try it out

    {
      results(filters: [{id: "type", value: "Movie"}, {id: "metascore", min: 30}]) {
        facets {
          identifier
          label
          type
          display
          entries {
            id
            label
            count
          }
        }
        hits {
          items {
            id
            fields {
              title
            }
          }
        }
      }
    }

    See Schema Query Guide for more examples.

    Install

    npm i @searchkit/apollo-resolvers

    DownloadsWeekly Downloads

    53

    Version

    3.0.0-canary.24

    License

    Apache-2.0

    Unpacked Size

    187 kB

    Total Files

    93

    Last publish

    Collaborators

    • ssetem
    • phoey1