Suggest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace Elastica\QueryBuilder\DSL;
  3. use Elastica\Exception\NotImplementedException;
  4. use Elastica\QueryBuilder\DSL;
  5. use Elastica\Suggest\Completion;
  6. use Elastica\Suggest\Phrase;
  7. use Elastica\Suggest\Term;
  8. /**
  9. * elasticsearch suggesters DSL.
  10. *
  11. * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
  12. *
  13. * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html
  14. */
  15. class Suggest implements DSL
  16. {
  17. /**
  18. * must return type for QueryBuilder usage.
  19. *
  20. * @return string
  21. */
  22. public function getType()
  23. {
  24. return self::TYPE_SUGGEST;
  25. }
  26. /**
  27. * term suggester.
  28. *
  29. * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-term.html
  30. *
  31. * @param $name
  32. * @param $field
  33. *
  34. * @return Term
  35. */
  36. public function term($name, $field)
  37. {
  38. return new Term($name, $field);
  39. }
  40. /**
  41. * phrase suggester.
  42. *
  43. * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html
  44. *
  45. * @param $name
  46. * @param $field
  47. *
  48. * @return Phrase
  49. */
  50. public function phrase($name, $field)
  51. {
  52. return new Phrase($name, $field);
  53. }
  54. /**
  55. * completion suggester.
  56. *
  57. * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html
  58. *
  59. * @param string $name
  60. * @param string $field
  61. *
  62. * @return Completion
  63. */
  64. public function completion($name, $field)
  65. {
  66. return new Completion($name, $field);
  67. }
  68. /**
  69. * context suggester.
  70. *
  71. * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html
  72. */
  73. public function context()
  74. {
  75. throw new NotImplementedException();
  76. }
  77. }