mxusearch
1.0.0
전체 텍스트 검색 서비스는 오픈 소스 프로젝트
xunsearch가 캡슐화 한 전체 텍스트 검색 엔진이며 서비스가 여전히 향상되고 있습니다.
1. composer 통해 검색 서비스를 설치하고 다음 명령을 입력하여 최신 버전을 설치하십시오.
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. config/app.php의 서비스 배열 제공 업체에 다음 서비스를 추가하십시오.
AntsfreeMxusearchMxusearchProvider::class
3. config/app.php의 외관 배열 별칭에 다음 외관을 추가하십시오.
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
4. mxusearch.php 구성 파일을 구성하려면 다음 명령을 실행하십시오.
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5. 분산 설치, 각 laravel 프로젝트는 다음 env 매개 변수를 구성해야합니다.
| ENV 구성 | 중국 정의 | 기본값 |
|---|---|---|
| mxusearch_project | 색인 라이브러리 이름 | mxu_project |
| mxusearch_charset | 캐릭터 인코딩 | UTF-8 |
| mxusearch_index_host | 인덱스 서버 IP | 127.0.0.1 (분산 배포 구성은 "참고"참조) |
| mxusearch_index_port | 인덱스 포트 | 8383 |
| mxusearch_search_host | 서버 IP를 검색하십시오 | 127.0.0.1 (분산 배포 구성은 "참고"참조) |
| mxusearch_search_port | 검색 포트 | 8384 |
| mxusearch_ini | INI 구성 파일 이름 | mxusearch.ini |
참고 : 위의 모든 구성에는 기본값이 있으며, 그 중 색인 및 검색 호스트는 분산 배포에서 구별되어야합니다. 검색 서비스가있는 서버를 균일하게 가리 킵니다.
6. console 명령을 실행하여 ini 파일을 생성합니다.
php artisan search:reset-ini
| 일련 번호 | 메소드 이름 | 중국 정의 | 주목 |
|---|---|---|---|
| 1 | addIndex | 인덱스를 만듭니다 | 단일 지원 인스턴트 동기화, 배수는 특정 상황에 따라 2 ~ 3 분에 특정한 시간 오류가 있습니다. |
| 2 | deleteIndex | 인덱스를 삭제하십시오 | 여러 개의 단일 조각이 지연없이 즉시 적용됩니다 |
| 4 | searchIndex | 색인을 찾으십시오 | SetFuzzy 퍼지 쿼리 지원, 특정 필드 지향 쿼리 지원 (열 : 키) |
| 5 | CleanIndex | 인덱스를 지우십시오 | 지연없이 즉시 효과적입니다 |
| 6 | rebuildindex | 인덱스를 재건하십시오 | 아직 지원되지 않습니다 |
| 7 | getIndexCount | 총 인덱스 수를 얻으십시오 | |
| 8 | 체크 서버 | 전체 텍스트 검색 서비스 상태를 감지합니다 | 현재 상태 및 색인 번호를 직접 출력합니다 |
| 9 | FlushIndex | 검색 로그의 새로 고침 | |
| 10 | gethotwords | 인기있는 검색어를 얻으십시오 | |
| 11 | GetMatchnum | 인덱스 일치 수를 얻으십시오 | |
| 12 | FlushIndex | 인덱스의 강제 새로 고침 | 인덱스의 즉각적인 검색을 실현하도록 새로 고침을 강제로합니다 |
| 13 | FlushLogging | 검색 로그의 새로 고침 | |
| 14 | 체크 서버 | Xunsou 서비스 상태 감지 | |
| 15 | getkeywords | 텍스트 단어 세분화 함수 | |
| 16 | 재설정 | INI 파일 메소드를 재설정합니다 | |
| 17 | 다중 검색 | 다중 조건 쿼리 |
장인 명령 구현 제공 :
| 일련 번호 | 장인 명령 | 콘솔 의미 | 주목 |
|---|---|---|---|
| 1 | 검색 : 추가 | 인덱스를 만듭니다 | 단일 지원 인스턴트 동기화, 배수는 특정 상황에 따라 2 ~ 3 분에 특정한 시간 오류가 있습니다. |
| 2 | 검색 : 삭제 | 인덱스를 삭제하십시오 | 여러 개의 단일 조각이 지연없이 즉시 적용됩니다 |
| 3 | 검색 : 검색 | 색인을 찾으십시오 | 터미널 상호 작용은 일치하는 범위를 선택할 수 있습니다 |
| 4 | 검색 : Clear | 인덱스를 지우십시오 | 지연없이 즉시 효과적입니다 |
| 5 | 검색 : 체크 서버 | 전체 텍스트 검색 서비스 상태를 감지합니다 | 현재 상태 및 색인 번호를 직접 출력합니다 |
| 6 | 검색 : 플러시 | 인덱스 및 검색 로그의 강제 새로 고침 | 기본적으로 비동기 적으로 생성 된 인덱스이며, 인덱스의 즉각적인 검색을 구현하도록 강제로 새로 고침되었습니다. |
| 7 | 검색 : SCWS | 텍스트 단어 분사 명령 | |
| 8 | 검색 : Reset-ini | INI 파일을 재설정하십시오 | 구성 항목에 따라 INI 파일을 재구성하십시오 |
| 9 | 검색 : List-Hotwords | 뜨거운 단어 목록을보십시오 | 명령 줄에서 직접 출력 |
1. ini 구성 파일 : mxu-backend/config/mxusearch.ini ;
2. 서버 구성
project.name = {{MXUSEARCH_PROJECT}}// 项目名称
project.default_charset = {{MXUSEARCH_CHARSET}}// 字符编码
server.index = {{MXUSEARCH_INDEX_HOST}}:{{MXUSEARCH_INDEX_PORT}}// 索引服务端配置(Host&端口)
server.search = {{MXUSEARCH_SEARCH_HOST}}:{{MXUSEARCH_SEARCH_PORT}}// 搜索服务端配置(Host&端口)
3. 인덱스 필드 구성
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
방법 예
/**
* 多条件查询功能
*
* @param $keyword
* @param string $field
* @param array $other_field_value
* @param array $range
* @param int $limit
* @param int $page
* @param array $sorts
*
* @return array
*/
public function multiSearch($keyword, $field = '', array $other_field_value = [], array $range = [], $limit = 0, $page = 1, array $sorts = []);
요청 매개 변수
| 매개 변수 이름 | 유형 | 매개 변수 설명 | 필수의 | 주목 |
|---|---|---|---|---|
| $ 키워드 | 끈 | 키워드 | N | |
| $ 필드 | 끈 | 필드 이름 | N | 기본 NULL, 전체 텍스트 매칭을 나타냅니다 |
| $ Other_field_value | 정렬 | 다른 다중 조건 매개 변수 | N | 기본 빈 배열 |
| $ 범위 | 정렬 | 간격 조건 필터링 | N | |
| $ 한도 | int | Pagination 매개 변수 | N | 기본 10 항목 |
| $ 페이지 | int | Pagination 매개 변수 | N | 기본 1 |
| $ 정렬 | 정렬 | 정렬 조건 | N | 기본 비어 |
요청 예제
$key = '我是关键词';
$field = 'title';
// 多条件
$other_field_value = [
'site_id' => 1,
'column_id' => 2,
'type' => 'article',
// ...
];
$range = [
[
'field' => 'publish_time',
'from' => '2017-10-18 12:07:26',
'to' => '2017-10-23 17:07:26',
],
// ...
];
// 分页控制
$limit = 10;
$page = 1;
// 排序条件(true 为正序, false 为倒序)
$sorts = [
'field_1' => true, // 根据 field_1 正序排序
'field_2' => false // 根据 field_2 倒序排序
];
// 调用服务
Mxusearch::multiSearch($key, $field, $other_field, $range, $limit, $page, $sorts);
2~4分钟안에 달성 할 수 있습니다.2~4分钟안에 달성 될 수 있습니다.laravel config 디렉토리에 저장됩니다.Xunsou SDK 가이드