Документация

Поиск

Для полнотекстового поиска используется стандартных механизм MongoDB. Для работы поиска в коллекции должен быть создан индекст с типом text.

Пример создания индекса:

db.products.createIndex(
    { title: "text", description: "text" },
    { default_language: "russian" }
)

Индекс поддерживает разные языки. По умолчанию такой индекс уже создан для коллекции "products" для полей "title" и "description".

Если в поисковом запросе несколько слов, то для них действует логика "ИЛИ". Для логики "И" нужно использовать двойные кавычки (как в обычной поисковой системе).

Например, для поискового запроса java "coffee shop" будут найдены все товары, в названии или описании которых есть слова "java" или "coffee shop" (не зависит от регистра).

Для исключения определенных товаров из результатов поиска можно использовать символ "-" (минус). Например, для запроса java shop -coffee будут найдены все товары, в названии или описании которых есть "java" или "shop", но нет "coffee".

Результаты поиска сортируются по релевантности.

Пример кода формы поиска в шаблоне:

<form action="{{ path('search_results') }}" method="get" id="formSearch">
    <div class="input-group input-group-sm">
        <input type="text" class="form-control" placeholder="{{ 'Search' | trans }}..." name="query">
        <div class="input-group-append">
            <button type="submit" class="btn btn-outline-secondary">
                <i class="icon-search"></i>
            </button>
        </div>
    </div>
</form>

Дополнительные материалы