Skip to content

add support for highlighting in QueryDSL#121

Merged
jillesvangurp merged 1 commit intojillesvangurp:masterfrom
larsgraedig:add-highlight-query-dsl
Mar 16, 2024
Merged

add support for highlighting in QueryDSL#121
jillesvangurp merged 1 commit intojillesvangurp:masterfrom
larsgraedig:add-highlight-query-dsl

Conversation

@larsgraedig
Copy link
Contributor

Added support for highlighting in SearchDSL according to https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html

Sample query:

{
  query = bool {
      [...]
  }

  highlight {
      boundaryChars = ".,!? \\t\\n"
      boundaryMaxScan = 20
      boundaryScanner = BoundaryScanner.chars
      boundaryScannerLocale = "de-DE"
      encoder = Encoder.default
      fragmenter = Fragmenter.span
      fragmentOffset = 10
      fragmentSize = 5
      highlightQuery =
          bool {
              should(
                  multiMatch(
                      "myQuery",
                      "somefield",
                      "anotherfield",
                  ),
              )
          }
      matchedFields(
          "field1",
          "field2",
      )
      noMatchSize = 2
      numberOfFragments = 3
      order = Order.score
      phraseLimit = 3
      preTags = "<b>"
      postTags = "</b>"
      requireFieldMatch = true
      maxAnalyzedOffset = 2
      tagsSchema = "styled"
      type = Type.unified
      fields(
          field("myField") {
              this.phraseLimit = 5
          },
      )
  }
}

It translates to:

{
  "query": {
    [...]
  },
  "highlight": {
    "boundary_chars": ".,!? \\t\\n",
    "boundary_max_scan": 20,
    "boundary_scanner": "chars",
    "boundary_scanner_locale": "de-DE",
    "encoder": "default",
    "fragmenter": "span",
    "fragment_offset": "10",
    "fragment_size": 5,
    "highlight_query": {
      "bool": {
        "should": {
          "multi_match": {
            "query": "myQuery",
            "fields": [
              "somefield",
              "anotherfield"
            ]
          }
        }
      }
    },
    "matched_fields": [
      "field1",
      "field2"
    ],
    "no_match_size": 2,
    "number_of_fragments": 3,
    "order": "score",
    "phrase_limit": 3,
    "pre_tags": "<b>",
    "post_tags": "</b>",
    "required_field_match": true,
    "max_analyzed_offset": 2,
    "tags_schema": "styled",
    "type": "unified",
    "fields": {
      "myField": {
        "phrase_limit": 5
      }
    }
}

@jillesvangurp jillesvangurp merged commit 42769fa into jillesvangurp:master Mar 16, 2024
@jillesvangurp
Copy link
Owner

Thanks for this!

@larsgraedig
Copy link
Contributor Author

Thanks for accepting! Keep up the good work - we really enjoy using your library in our project 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants