@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.

Package Sidebar

Install

npm i @searchkit/apollo-resolvers

Weekly Downloads

3

Version

3.0.0-canary.24

License

Apache-2.0

Unpacked Size

187 kB

Total Files

93

Last publish

Collaborators

  • ssetem
  • phoey1