Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
index.md 1.46 KiB

Suggest

Objective suggest builder represents Elasticsearch Term suggest.

To form a suggest you have to create Search object. See below an example of suggest usage.

$search = new Search();
$suggest = new Suggest('my_suggest', 'searchText', ['field' => 'title', 'size' => 5]);
$search->addSuggest($suggest);
$queryArray = $search->toArray();

That will generate following JSON:

"suggest": {
  "my_suggest": {
    "text": "searchText",
    "term": {
      "field": "title",
      "size": 5
    }
  }
}

You're able to create more than one suggest:

$search = new Search();
$suggest1 = new Suggest('my_suggest1', 'the amsterdma meetpu', ['field' => 'body', 'size' => 5]);
$search->addSuggest($suggest1);
$suggest2 = new Suggest('my_suggest2', 'the rottredam meetpu', ['field' => 'title', 'size' => 5]);
$search->addSuggest($suggest2);
$queryArray = $search->toArray();

That will generate following JSON:

"suggest": {
  "my_suggest1": {
    "text": "the amsterdma meetpu",
    "term": {
      "field": "body",
      "size": 5
    }
  },
  "my_suggest2": {
    "text": "the rottredam meetpu",
    "term": {
      "field": "title",
      "size": 5
    }
  }
}

If parameters field or size are not provided they will have default values, field = _all and size = 3

Find available parameters in Elasticsearch Term suggest documentation