# 사이트에 검색 추가
Wagtail `start` 명령을 사용하여 프로젝트를 시작하면 내장 검색 앱이 제공됩니다. 이 내장 검색 앱은 사이트에 간단한 검색 기능을 제공합니다.
그러나 포트폴리오 사이트에 맞게 검색 템플릿을 사용자 정의할 수 있습니다. 검색 템플릿을 사용자 정의하려면 `search/templates/search.html` 파일로 이동하여 다음과 같이 수정합니다:
```html+django
{% extends "base.html" %}
{% load static wagtailcore_tags %}
{% block body_class %}template-searchresults{% endblock %}
{% block title %}검색{% endblock %}
{% block content %}
검색
{% if search_results %}
{# 찾은 결과의 세부 정보를 표시하려면 이 단락을 추가합니다: #}
검색어{% if search_query %} “{{ search_query }}”{% endif %}에 대한 {{ search_results.paginator.count }}개의 결과가 발견되었습니다.
{# HTML 요소를 html 요소로 바꿉니다: #}
{% for result in search_results %}
-
{% if result.search_description %}
{{ result.search_description }}
{% endif %}
{% endfor %}
{# 다음을 추가하여 페이지 매김을 개선합니다: #}
{% if search_results.paginator.num_pages > 1 %}
{{ search_results.paginator.num_pages }}페이지 중 {{ search_results.number }}페이지, {{ search_results|length }}개 결과 중 {{ search_results.paginator.count }}개 표시
{% endif %}
{% if search_results.has_previous %}
이전
{% endif %}
{% if search_results.has_next %}
다음
{% endif %}
{% elif search_query %}
결과를 찾을 수 없습니다
{% endif %}
{% endblock %}
```
이제 이전 템플릿에서 수행한 사용자 정의를 설명하겠습니다:
1. `검색어{% if search_query %} “{{ search_query }}”{% endif %}에 대한 {{ search_results.paginator.count }}개의 결과가 발견되었습니다.
` 를 사용하여 검색어, 찾은 결과 수, 그리고 둘 이상의 검색 결과가 발견되면 "result"의 복수형을 표시했습니다.
2. `` HTML 요소를 `` HTML 요소로 바꿨습니다. `` HTML 요소는 각 검색 결과를 반복하고 목록 항목으로 표시하는 루프를 포함합니다. `` 을 사용하면 번호가 매겨진 검색 결과를 얻을 수 있습니다.
3. 템플릿의 페이지 매김을 개선했습니다. `{% if search_results.paginator.num_pages > 1 %}` 는 검색 결과 페이지가 두 개 이상인지 확인합니다. 두 개 이상이면 현재 페이지 번호, 총 페이지 수, 현재 페이지의 결과 수, 총 결과 수를 표시합니다. `{% if search_results.has_previous %} 및 {% if search_results.has_next %}` 는 이전 및 다음 검색 결과 페이지가 있는지 확인합니다. 존재하면 페이지 매김에 적합한 URL과 함께 "이전" 및 "다음" 링크를 표시합니다.
이제 사이트 전체에 검색을 표시하려고 합니다. 이를 수행하는 한 가지 방법은 헤더에 추가하는 것입니다. `mysite/templates/includes/header.html` 파일로 이동하여 다음과 같이 수정합니다:
```html+django
{% load wagtailcore_tags navigation_tags wagtailuserbar %}
```
이제 검색을 실행하고 결과를 볼 수 있습니다. 그러나 검색은 현재 페이지 제목에서 발견된 단어에 대한 결과만 반환합니다. 다른 필드를 검색 가능하게 만들려면 검색 인덱스에 추가해야 합니다. - [](wagtailsearch_indexing)를 참조하십시오. `blog/models.py` 에 다음 코드를 추가합니다:
```python
# 기존 가져오기에 추가:
from wagtail.search import index
class BlogPage(Page):
# 기존 parent_page_types, fields, methods 및 content_panels 정의를 유지하고 다음을 추가합니다:
search_fields = Page.search_fields + [
index.SearchField('intro'),
index.SearchField('body'),
]
```
이제 `BlogPage` 의 `body` 필드를 포함하여 검색 인덱스를 다시 빌드하려면 다음 명령을 실행합니다:
```sh
python manage.py update_index
```
이제 검색은 본문 텍스트에서 발견된 단어에 대한 결과를 반환합니다.
잘하셨습니다! 이제 완전히 배포 가능한 포트폴리오 사이트가 있습니다. 이 튜토리얼의 다음 섹션에서는 사이트를 배포하는 방법을 안내합니다.