SearchableInterface.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace Elastica;
  3. /**
  4. * Elastica searchable interface.
  5. *
  6. * @author Thibault Duplessis <thibault.duplessis@gmail.com>
  7. */
  8. interface SearchableInterface
  9. {
  10. /**
  11. * Searches results for a query.
  12. *
  13. * {
  14. * "from" : 0,
  15. * "size" : 10,
  16. * "sort" : {
  17. * "postDate" : {"order" : "desc"},
  18. * "user" : { },
  19. * "_score" : { }
  20. * },
  21. * "query" : {
  22. * "term" : { "user" : "kimchy" }
  23. * }
  24. * }
  25. *
  26. * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
  27. * @param null $options
  28. *
  29. * @return \Elastica\ResultSet with all results inside
  30. */
  31. public function search($query = '', $options = null);
  32. /**
  33. * Counts results for a query.
  34. *
  35. * If no query is set, matchall query is created
  36. *
  37. * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
  38. *
  39. * @return int number of documents matching the query
  40. */
  41. public function count($query = '');
  42. /**
  43. * @param \Elastica\Query|string $query
  44. * @param array $options
  45. *
  46. * @return \Elastica\Search
  47. */
  48. public function createSearch($query = '', $options = null);
  49. }