How to use the elastic-builder.termsQuery function in elastic-builder

To help you get started, we’ve selected a few elastic-builder examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github dpc-sdp / ripple / packages / ripple-nuxt-tide / modules / search / lib / search / services / elasticsearch / lib / querybuilder.js View on Github external
switch (filter.type) {
    case 'date':
      if (moment(filter.values).isValid() || filter.values === 'now') {
        esbResult = esbResult.filter(esb.rangeQuery(filterName)[operator](filter.values))
      }
      break
    case 'term':
      if (Array.isArray(filter.values)) {
        const filterVals = filter.values.map((item) => {
          // Check that filter fields aren't empty.
          if (item.length > 0) {
            return item
          }
        })
        // Match any terms.
        esbResult = esbResult.filter(esb.termsQuery(filterName, filterVals))
        // Match all terms.
        // esbResult = esbResult.should(esb.termsQuery(filterName, filterVals))
        // esbResult = esbResult.minimumShouldMatch(filterField.length)
      } else {
        let filterField = filter.values.slice()
        esbResult = esbResult.filter(esb.termQuery(filterName, filterField))
      }
      break
    case 'multiMatch':
      esbResult = esbResult.must(esb.multiMatchQuery(filter.fields, filter.values))
      break
    case 'ids':
      esbResult = esbResult.filter(esb.idsQuery(filter.fields, filter.values))
      break
    case 'integer':
      esbResult = esbResult.filter(esb.rangeQuery(filterName)[operator](filter.values))