YAZ yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_search — 수색 준비


설명

yaz_search(resource $id, string $type, string $query): bool

yaz_search()는 주어진 연결에서 검색을 준비합니다.

yaz_connect()와 마찬가지로 이 함수는 차단되지 않으며 yaz_wait()가 호출될 때 나중에 실행될 검색만 준비합니다.


매개변수

id
yaz_connect()에서 반환된 연결 리소스입니다.
type
이 매개변수는 쿼리 유형을 나타냅니다. 이제 "rpn"만 지원되며 이 경우 세 번째 인수는 접두사 쿼리 표기법에서 유형-1 쿼리를 지정합니다.
id
RPN 쿼리는 Z39.50 표준에 정의된 Type-1 쿼리의 텍스트 표현입니다. 그러나 YAZ에서 사용하는 텍스트 표현에서는 접두사 표기법이 사용됩니다. 즉, 연산자가 피연산자 앞에 옵니다. 쿼리 문자열은 큰따옴표로 묶이지 않는 한 공백이 무시되는 토큰 시퀀스입니다. @ 문자로 시작하는 토큰은 연산자로 간주되며, 그렇지 않으면 검색어로 처리됩니다.

RPN Operators

Construct 설명
@and query1 query2 쿼리1과 쿼리2의 교집합
@or query1 query2 query1과 query2의 합집합
@not query1 query2 query1 and not query2
@set name 결과 집합 참조
@attrset set query 쿼리에 대한 속성 집합을 지정합니다. 이 구성은 전체 쿼리의 시작 부분에서 한 번만 허용됩니다.
@attr [set] type=value query 쿼리에 속성을 적용합니다. 유형 및 값은 각각 속성 유형 및 속성 값을 지정하는 정수입니다. 주어진 경우 집합은 속성 집합을 지정합니다.

» Z39.50 Maintenance Agency 사이트에서 속성에 대한 정보를 찾을 수 있습니다.

메모: 좀 더 친숙한 표기법을 사용하려면 CCL 파서를 사용하십시오 - 함수 yaz_ccl_conf()yaz_ccl_parse().


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


Examples

예제 #1 쿼리 예

다음과 같이 간단한 용어를 검색할 수 있습니다.

computer
                

"computer"가 발생하는 문서와 일치합니다. 속성이 지정되지 않았습니다.

쿼리

"knuth donald"
                

"knuth donald"가 발생하는 문서와 일치합니다(서버가 구문 검색을 지원하는 경우).

이 쿼리는 동일한 구에 대해 두 가지 속성을 적용합니다.

@attr 1=1003 @attr 4=1 "knuth donald"
                

첫 번째 속성은 유형 1(Bib-1 사용)이고 속성 값은 1003(저자)입니다. 두 번째 속성은 유형 4(구조), 값 1(구문)이므로 Donald Knuth가 작성자인 문서와 일치해야 합니다.

쿼리

@and @or a b @not @or c d e
                

중위 표기법에서 (a 또는 b) 및 ((c 또는 d) e)처럼 보이지 않습니다.

다른 하나는 더 복잡합니다.

@attrset gils @and @attr 1=4 art @attr 1=2000 company
                

쿼리는 전체적으로 GILS 속성 집합을 사용합니다. 이 쿼리는 제목에 아트가 있는 문서(GILS,BIB-1)와 회사가 Distributor(GILS)로 나오는 문서와 일치합니다.