Открываем соединение на сокет только для чления и авторизовываемся с паролем passwordRead
$reader = new \HS\Reader('localhost', 9998, 'passwordRead');
При открытии индекса используется числовой идентификатор.
Если этот идентификатор еще не использовался, то ему просто будет присвоен новый индекс, если же он уже использовался, то новый индекс просто перезапишет старый.
Поэтому очень важно хранить данные обо всех открытых индексах в рамках текущего подключения, чтобы вам не пришлось открывать по несколько раз индексы.
Ниже приведен пример команды, которая проверяет, а не открыт ли у нас уже индекс, который нам нужен, если да - просто возвращает нам идентификатор; если нет - открывает новый индекс и возвращает нам его идентификатор.
$indexId = $reader->getIndexId(
'database',
'tableName',
'PRIMARY',
array('key', 'text')
);
$reader->getResultList();
Если возникает ситуация, когда нам необходимо просто открыть индекс c номер 12(например) и мы ничего не хотим проверять:
$openIndexQuery = $reader->openIndex(
'12'
'database',
'tableName',
'PRIMARY',
array('key', 'text'),
array('num')
);
$reader->getResultList();
Здесь мы открываем индекс c номером 12, колонками key
, text
, а также колонкой для фильтров num
.
Метод вернет нам класс OpenIndexQuery.
Другой способ выполнить запрос:
$openIndexQuery->execute(); // отправлен запрос + получен ответ на этот запрос + все, что было в очереди на отправку
$openIndexResult = $openIndexQuery->getResult();