12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php // vim:set ts=4 sw=4 et:
- namespace Mall\Framework\SearchClient;
- /**
- * This file is part of the ElasticSearch PHP client
- *
- * (c) Raymond Julin <raymond.julin@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- class Mapping {
- protected $properties = array();
- protected $config = array();
- /**
- * Build mapping data
- *
- * @param array $properties
- * @param array $config
- * @return Mapping
- */
- public function __construct(array $properties = array(), array $config = array()) {
- $this->properties = $properties;
- $this->config = $config;
- }
- /**
- * Export mapping data as a json-ready array
- *
- * @return string
- */
- public function export() {
- return array(
- 'properties' => $this->properties
- );
- }
- /**
- * Add or overwrite existing field by name
- *
- * @param string $field
- * @param string|array $config
- * @return $this
- */
- public function field($field, $config = array()) {
- if (is_string($config)) $config = array('type' => $config);
- $this->properties[$field] = $config;
- return $this;
- }
- /**
- * Get or set a config
- *
- * @param string $key
- * @param mixed $value
- * @throws \Exception
- * @return array|void
- */
- public function config($key, $value = null) {
- if (is_array($key))
- $this->config = $key + $this->config;
- else {
- if ($value !== null) $this->config[$key] = $value;
- if (!isset($this->config[$key]))
- throw new \Exception("Configuration key `type` is not set");
- return $this->config[$key];
- }
- }
- }
|