Script.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace Elastica\Query;
  3. use Elastica;
  4. /**
  5. * Script query.
  6. *
  7. * @author Nicolas Ruflin <spam@ruflin.com>
  8. *
  9. * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-query.html
  10. */
  11. class Script extends AbstractQuery
  12. {
  13. /**
  14. * Construct script query.
  15. *
  16. * @param array|string|\Elastica\Script\AbstractScript $script OPTIONAL Script
  17. */
  18. public function __construct($script = null)
  19. {
  20. if ($script) {
  21. $this->setScript($script);
  22. }
  23. }
  24. /**
  25. * Sets script object.
  26. *
  27. * @param \Elastica\Script\Script|string|array $script
  28. *
  29. * @return $this
  30. */
  31. public function setScript($script)
  32. {
  33. return $this->setParam('script', Elastica\Script\Script::create($script));
  34. }
  35. /**
  36. * {@inheritdoc}
  37. */
  38. public function toArray()
  39. {
  40. $array = parent::toArray();
  41. if (isset($array['script'])) {
  42. $array['script'] = $array['script']['script'];
  43. }
  44. return $array;
  45. }
  46. }