ImmutableQuery

An immutable query builder which is passed around particular Accessors before being sent to ElasticSearch. This is used internally by Searchkit components

Example usage

import {
  ImmutableQuery,
  SimpleQueryString
} from "searchkit"

let query = new ImmutableQuery()
let newQuery = query.setSize(10).addQuery(
  SimpleQueryString("search term")
)

//query + newQuery are seperate

API

  • .addQuery(queryObject)
    //simple query
    new ImmutableQuery().addQuery(SimpleQueryString("Hello"))
    
    //simple query + prefix queries on title(boosted) + description
    new ImmutableQuery().addQuery(BoolMust([
      SimpleQueryString("Termina"),
      MatchPhrasePrefix("Termina", "movieTitle^5")
      MatchPhrasePrefix("Termina", "movieDescription")
    ])
    
  • .addFilter(key, boolObject)
    //filter on either color of red or yellow
    new ImmutableQuery().addFilter("color", BoolShould([
      Term("color", "red"),
      Term("color", "yellow")
    ]))
    
  • .addAnonymousFilter(key, boolObject)
    //filter on either color of red or yellow
    new ImmutableQuery().addAnonymousFilter(BoolShould([
      Term("color", "red"),
      Term("color", "yellow")
    ]))
    
  • .setSize(size)

    new ImmutableQuery().setSize(10)
    
  • .setFrom(from)

    new ImmutableQuery().setSize(100)
    
  • .setSort(sortOb)
    new ImmutableQuery().setSize([  
    {"price" : {"order" : "asc"}}  
    ])