️ Этот клиент устарел️ Начиная с версии 7.13.0 корпоративного поиска, мы направляем пользователей на новый PHP-клиент корпоративного поиска и объявляем его устаревшим.
Этот клиент будет совместим со всеми выпусками Enterprise Search 7.x, но не будет совместим с выпусками 8.x. Наши усилия по разработке этого проекта будут ограничены исправлением ошибок. Все будущие улучшения будут сосредоточены на PHP-клиенте корпоративного поиска.
Спасибо! - Эластичный
Собственный PHP-клиент для создания отличных и релевантных возможностей поиска с помощью Elastic App Search.
Использование этого клиента предполагает, что у вас уже есть запущенный экземпляр Elastic App Search.
Дополнительную информацию об Elastic App Search можно найти по адресу: https://www.elastic.co/app-search.
Вы можете установить клиент в свой проект с помощью композитора:
composer require elastic/app-search
Этот клиент разрабатывается и выпускается вместе с App Search.
Чтобы гарантировать совместимость, используйте самую последнюю версию этой библиотеки в основной версии соответствующей реализации поиска приложений.
Например, для App Search 7.3
используйте 7.3
этой библиотеки или более позднюю, но не 8.0
.
Если вы используете версию SaaS, доступную на сайте Swiftype.com для поиска приложений, вам следует использовать версию клиента 7.5.x.
Чтобы создать экземпляр нового клиента, вы можете использовать ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
Примечания:
Результирующий клиент будет иметь тип ElasticAppSearchClientClient
Конечную точку API и URL-адрес ключа API можно найти в разделах учетных данных на панели поиска приложений.
Вы можете использовать любой тип ключа API (частный, общедоступный или административный). Клиент выдаст исключение, если вы попытаетесь выполнить действие, не разрешенное для используемого ключа.
Большинство методов API требуют наличия доступа к Engine.
Чтобы проверить, существует ли Engine, и получить его конфигурацию, вы можете использовать метод Client::getEngine
:
$ engine = $ client -> getEngine ( ' my-engine ' );
Если Engine еще не существует, вы можете создать его с помощью метода Client::createEngine
:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
Второй параметр ( $language
) является необязательным. Установите для него null
чтобы применить universal
язык.
Узнайте больше о языковой поддержке.
Вы можете использовать метод Client::indexDocuments
для индексации некоторых документов в Engine:
$ documents = [
[ ' id ' => ' first-document ' , ' name ' => ' Document name ' , ' description ' => ' Document description ' ],
[ ' id ' => ' other-document ' , ' name ' => ' Other document name ' , ' description ' => ' Other description ' ],
];
$ indexingResults = $ client -> indexDocuments ( ' my-engine ' , $ documents );
Массив $indexingResults
будет содержать результат индексации каждого документа. Вы всегда должны проверять содержание результата.
Узнайте больше об индексировании документов.
Вы можете использовать метод Client::search
для поиска в вашем движке:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
Если вы хотите сопоставить все документы, вы можете использовать пустой поисковый ''
в качестве второго параметра ( $queryText
).
Параметр $searchRequestParams
является необязательным и может использоваться для использования функций расширенного поиска. Разрешенные параметры:
Имя параметра | URL-адрес документации |
---|---|
page | https://swiftype.com/documentation/app-search/api/search#paging |
filters | https://swiftype.com/documentation/app-search/api/search/filters |
facets | https://swiftype.com/documentation/app-search/api/search/facets |
sort | https://swiftype.com/documentation/app-search/api/search/sorting |
boosts | https://swiftype.com/documentation/app-search/api/search/boosts |
search_fields | https://swiftype.com/documentation/app-search/api/search/search-fields |
result_fields | https://swiftype.com/documentation/app-search/api/search/result-fields |
group | https://swiftype.com/documentation/app-search/api/search/grouping |
Ответ на поиск будет содержать как минимум метаполе и поле результатов, как показано в этом примере:
[
' meta ' => [
' warnings ' => [],
' page ' => [
' current ' => 1 ,
' total_pages ' => 1 ,
' total_results ' => 1 ,
' size ' => 10
],
' request_id ' => ' feff7cf2359a6f6da84586969ef0ca89 '
],
' results ' => [
[
' id ' => [ ' raw ' => ' first-document ' ],
' name ' => [ ' raw ' => ' Document name ' ],
' description ' => [ ' raw ' => [ ' Document description ' ]
]
]
]
]
Метод | Описание | Документация |
---|---|---|
createEngine | Создает новый движок. Параметры: - $name (обязательно)- $language | Документация по конечной точке |
createMetaEngine | Создает новый мета-движок. Параметры: - $name (обязательно)- $sourceEngines (обязательно) | Документация по конечной точке |
addMetaEngineSource | Добавьте исходный движок к существующему мета-движку. Параметры: - $engineName (обязательно)- $sourceEngines (обязательно) | Документация по конечной точке |
createCuration | Создайте новую курацию. Параметры: - $engineName (обязательно)- $queries (обязательно)- $promotedDocIds - $hiddenDocIds | Документация по конечной точке |
createSynonymSet | Создайте новый набор синонимов. Параметры: - $engineName (обязательно)- $synonyms (обязательно) | Документация по конечной точке |
deleteCuration | Удалить курирование по идентификатору. Параметры: - $engineName (обязательно)- $curationId (обязательно) | Документация по конечной точке |
deleteDocuments | Удаление документов по идентификатору. Параметры: - $engineName (обязательно)- $documentIds (обязательно) | Документация по конечной точке |
deleteEngine | Удаление двигателя по имени. Параметры: - $engineName (обязательно) | Документация по конечной точке |
deleteMetaEngineSource | Удалите исходный движок из мета-движка. Параметры: - $engineName (обязательно)- $sourceEngines (обязательно) | Документация по конечной точке |
deleteSynonymSet | Удалить синоним, заданный по идентификатору. Параметры: - $engineName (обязательно)- $synonymSetId (обязательно) | Документация по конечной точке |
getApiLogs | Журнал API отображает данные запросов и ответов API на уровне механизма. Параметры: - $engineName (обязательно)- $fromDate (обязательно)- $toDate (обязательно)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | Документация по конечной точке |
getCountAnalytics | Возвращает количество кликов и общее количество запросов за период. Параметры: - $engineName (обязательно)- $filters - $interval | Документация по конечной точке |
getCuration | Получить курацию по id. Параметры: - $engineName (обязательно)- $curationId (обязательно) | Документация по конечной точке |
getDocuments | Извлекает один или несколько документов по идентификатору. Параметры: - $engineName (обязательно)- $documentIds (обязательно) | Документация по конечной точке |
getEngine | Получает двигатель по имени. Параметры: - $engineName (обязательно) | Документация по конечной точке |
getSchema | Получить текущую схему для движка. Параметры: - $engineName (обязательно) | Документация по конечной точке |
getSearchSettings | Получить текущие настройки поиска для системы. Параметры: - $engineName (обязательно) | Документация по конечной точке |
getSynonymSet | Получить синоним, заданный по идентификатору. Параметры: - $engineName (обязательно)- $synonymSetId (обязательно) | Документация по конечной точке |
getTopClicksAnalytics | Возвращает количество кликов, полученных документом, в порядке убывания. Параметры: - $engineName (обязательно)- $query - $pageSize - $filters | Документация по конечной точке |
getTopQueriesAnalytics | Возвращает аналитику запросов по количеству использования. Параметры: - $engineName (обязательно)- $pageSize - $filters | Документация по конечной точке |
indexDocuments | Создайте или обновите документы. Параметры: - $engineName (обязательно)- $documents (обязательно) | Документация по конечной точке |
listCurations | Получите доступные настройки для движка. Параметры: - $engineName (обязательно)- $currentPage - $pageSize | Документация по конечной точке |
listDocuments | Перечислите все доступные документы с дополнительной поддержкой нумерации страниц. Параметры: - $engineName (обязательно)- $currentPage - $pageSize | Документация по конечной точке |
listEngines | Извлекает все движки с дополнительной поддержкой нумерации страниц. Параметры: - $currentPage - $pageSize | Документация по конечной точке |
listSynonymSets | Получите доступные наборы синонимов для движка. Параметры: - $engineName (обязательно)- $currentPage - $pageSize | Документация по конечной точке |
logClickthrough | Отправлять данные о результатах кликов. Параметры: - $engineName (обязательно)- $queryText (обязательно)- $documentId (обязательно)- $requestId - $tags | Документация по конечной точке |
multiSearch | Запустите несколько поисков в одном запросе. Параметры: - $engineName (обязательно)- $queries (обязательно) | Документация по конечной точке |
querySuggestion | Предоставьте соответствующие предложения по незавершенным запросам. Параметры: - $engineName (обязательно)- $query (обязательно)- $fields - $size | Документация по конечной точке |
resetSearchSettings | Сбросьте настройки поиска для движка. Параметры: - $engineName (обязательно) | Документация по конечной точке |
search | Позволяет выполнять поиск, анализировать и фильтровать данные. Параметры: - $engineName (обязательно)- $queryText (обязательно)- $searchRequestParams | Документация по конечной точке |
updateCuration | Обновите существующую курацию. Параметры: - $engineName (обязательно)- $curationId (обязательно)- $queries (обязательно)- $promotedDocIds - $hiddenDocIds | Документация по конечной точке |
updateDocuments | Частичное обновление документов. Параметры: - $engineName (обязательно)- $documents (обязательно) | Документация по конечной точке |
updateSchema | Обновить схему для текущего движка. Параметры: - $engineName (обязательно)- $schema (обязательно) | Документация по конечной точке |
updateSearchSettings | Обновите настройки поиска для движка. Параметры: - $engineName (обязательно)- $searchSettings (обязательно) | Документация по конечной точке |
Код для конечных точек генерируется автоматически с использованием специальной версии генератора OpenAPI.
Чтобы восстановить конечные точки, используйте Docker Laucher, упакованный в vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
Пользовательский генератор будет создан и запущен с использованием следующего файла спецификации Open API: resources/api/api-spec.yml
.
Затем вы можете зафиксировать и PR измененный файл API-спецификации и файлы кода ваших конечных точек.
В некоторых случаях класс клиента и файл readme могут быть изменены. Не забудьте включить их в свой коммит!
Если что-то не работает должным образом, пожалуйста, откройте проблему.
Лучше всего прочитать документацию.
Вы можете посетить форумы обсуждения сообщества Elastic.
Мы приветствуем участников проекта. Прежде чем начать, пара замечаний...
Апач 2.0 © Elastic
Спасибо всем участникам!