const p=s=>'

'+s+'

';const ul=xs=>''; export default { 169:({a,img,pre})=>p(img(0,'노트 검색 화면'))+p('제목과 본문 및 '+a(0,'속성')+'을 검색합니다. 검색 조건을 저장하면 트리에 검색 노트가 생기고 결과가 하위 항목으로 나타납니다.')+'

검색 열기

'+p(a(1,'실행 도구 모음')+'의 검색 버튼을 누릅니다. 특정 하위 트리만 찾으려면 '+a(2,'노트 트리 메뉴')+'의 하위 트리에서 검색 또는 Ctrl+Shift+S를 사용합니다. '+a(3,'단축키')+'로도 검색 화면을 열 수 있습니다.')+'

사용 방법

'+p('검색어를 입력합니다. 일반 단어뿐 아니라 속성과 노트 정보로 조건을 지정할 수 있습니다. 상위 노트를 지정하면 해당 노트와 하위 항목만 찾습니다. '+a(4,'확대해서 보는 노트')+'나 '+a(5,'작업 공간')+'에서 열면 이 값이 미리 채워질 수 있습니다. 전체를 검색하려면 비웁니다. 깊이로 탐색할 하위 단계를 제한할 수 있습니다.')+p('검색을 누르면 아래에 결과가 표시됩니다. 작업을 추가한 경우에는 검색 후 작업 실행 버튼을 사용할 수 있습니다. 노트로 저장은 조건을 '+a(6,'저장된 검색')+' 노트로 만듭니다.')+'

검색 옵션

'+p('검색 옵션 추가에서 항목을 선택하고 세부 값을 지정합니다. 오른쪽 X로 제거합니다.')+ul(['검색 스크립트 — 직접 검색을 처리할 '+a(7,'코드 노트')+'를 지정합니다.','빠른 검색 — 본문을 제외하고 제목과 조건에 지정한 속성·관계를 검색합니다. 큰 '+a(8,'데이터베이스')+'에서 속도를 높일 수 있습니다.','보관된 노트 포함 — 평소 제외하는 '+a(9,'보관된 노트')+'도 찾습니다.','정렬 기준 — 관련성 대신 만든 날짜나 제목 등을 사용합니다. 오름차순과 내림차순도 지정합니다.','결과 수 제한 — 최대 개수를 지정합니다. 제한을 넘는 결과는 표시되지 않습니다.','디버그 — 검색식을 해석한 정보를 서버 '+a(10,'로그')+'에 기록합니다. 복잡한 조건의 문제를 분석할 때 사용합니다.','작업 — 검색 결과에 라벨이나 관계 추가 등을 적용합니다. 같은 종류를 여러 번 추가할 수 있습니다. '+a(11,'일괄 작업')+'과 같은 동작을 제공하며 '+a(12,'노트 트리')+'에서 직접 대상을 고르는 대신 검색 결과를 사용합니다. 먼저 검색으로 대상을 확인한 뒤 검색 후 작업 실행을 누르세요.'])+'

기본 검색 예제

'+ul(['반지 톨킨 — 두 단어가 모두 있는 노트를 찾습니다.','"반지의 제왕" 톨킨 — 따옴표 안의 문구는 그대로 일치해야 합니다.','note.content *=* 반지 OR note.content *=* 톨킨 — 본문에 둘 중 하나가 있는 노트를 찾습니다.','탑 #book — 탑이라는 단어와 book 라벨이 모두 있어야 합니다.','탑 #book or #author — 탑이라는 단어가 있고 두 라벨 중 하나가 있어야 합니다.','탑 #!book — 탑이라는 단어가 있으면서 book 라벨은 없는 노트입니다.','#book #publicationYear = 1954 — 책 라벨이 있고 출판 연도 값이 1954인 노트입니다.','#genre *=* 판타지 — 장르 값에 판타지가 포함된 노트입니다. *=*는 포함하며 =*는 시작하고 *=는 끝나는 조건입니다. !=는 같지 않음입니다.','#book #publicationYear >= 1950 #publicationYear < 1960 — 1950년대에 출판된 책을 찾습니다.','#dateNote >= TODAY-30 — 30일 전 이후의 날짜 노트를 찾습니다. 상대값은 초 단위 NOW와 일 단위 TODAY 및 월 단위 MONTH와 연 단위 YEAR를 지원합니다.','~author.title *=* 톨킨 — 저자 관계의 대상 제목에 톨킨이 포함된 노트를 찾습니다.','#publicationYear %= \'19[0-9]{2}\' — 정규식으로 출판 연도를 검색합니다. 이 기능은 0.52부터 지원합니다.'])+'

고급 예제

'+p('~author.relations.son.title = \'크리스토퍼 톨킨\'은 저자 관계를 따라간 노트에서 다시 son 관계를 따라갔을 때 제목이 일치하는 노트를 찾습니다. 예를 들어 책의 author가 J. R. R. 톨킨을 가리키고 그 노트의 son이 크리스토퍼 톨킨을 가리키는 구조입니다.')+p('~author.title *= 톨킨 OR (#publicationDate >= 1954 AND #publicationDate <= 1960)처럼 논리 연산과 괄호를 사용할 수 있습니다. 식 전체가 괄호로 시작할 때는 앞에 # 또는 ~ 구분자가 필요합니다.')+ul(['note.parents.title = \'책\' — 바로 위 노트 제목이 책인 항목','note.parents.parents.title = \'책\' — 두 단계 위 노트 제목이 책인 항목','note.ancestors.title = \'책\' — 상위 경로에 책이라는 노트가 있는 항목','note.children.title = \'하위 노트\' — 지정한 제목의 하위 노트가 있는 항목'])+'

노트 정보로 검색

'+p('note. 뒤에 속성명을 붙입니다. 예: note.type = code AND note.mime = \'application/json\'. 사용할 수 있는 정보는 다음과 같습니다.')+p('noteId dateModified dateCreated isProtected type title text content rawContent ownedLabelCount labelCount ownedRelationCount relationCount ownedRelationCountIncludingLinks relationCountIncludingLinks ownedAttributeCount attributeCount targetRelationCount targetRelationCountIncludingLinks parentCount childrenCount isArchived contentSize noteSize revisionCount')+'

정렬과 결과 수 제한

'+pre(0).replace('Tolkien','톨킨')+p('저자 라벨 값이 톨킨인 노트를 찾아 출판 날짜 내림차순으로 정렬합니다. 날짜가 같으면 제목을 기준으로 정렬하고 처음 10개만 표시합니다.')+'

부정 조건

'+pre(1).replace('note.ancestor.title','note.ancestors.title').replace('Tolkien','톨킨')+p('톨킨이라는 노트의 하위 트리에 속하지 않는 책 노트를 찾습니다.')+'

검색식의 구성

'+p('라벨과 관계의 전체 문법은 다음과 같습니다.')+pre(2)+pre(3).replace('Tolkien','톨킨')+p('자주 사용하는 형태는 짧게 쓸 수 있습니다.')+pre(4).replace('#author.title','~author.title').replace('Tolkien','톨킨')+'

본문 검색과 속성 검색의 구분

'+p('톨킨 #book에서 톨킨은 본문 검색어이고 #book은 속성 조건입니다. #와 ~ 및 note. 같은 문법으로 구분합니다. 일반 텍스트로 찾으려면 따옴표로 감싸거나 역슬래시로 이스케이프합니다.')+pre(5).replace('Say "Hello World"','"안녕하세요"라고 말하기')+'

특수문자와 따옴표

'+p('작은따옴표와 큰따옴표 및 백틱을 지원합니다.')+pre(6).replace('Say "Hello World"','"안녕하세요"라고 말하기')+'

값의 형 변환

'+p('라벨은 문자열로 저장되지만 숫자 비교 연산에서는 숫자로 변환합니다. 다음 예제는 만든 날짜가 2019년 5월로 시작하는 노트를 찾습니다.')+pre(7)+p('#publicationYear >= 1960은 출판 연도를 숫자로 비교합니다.')+'

URL로 검색 실행

'+p('검색어를 '+a(13,'URL 인코딩')+'한 뒤 주소에 넣으면 앱을 열면서 검색할 수 있습니다. 예: http://localhost:8080/#?searchString=abc') };