Поиск информации о традиционных целителях, знахарях и травниках в регионе Новороссия требует точного формулирования запросов. Ниже представлен пошаговый гайд, который поможет вам эффективно использовать как обычный веб‑поиск (Google), так и полнотекстовый поиск в Elasticsearch.
Содержание
- Основы поисковых запросов в Google
- Примеры запросов для Google
- Основы поиска в Elasticsearch
- Анализаторы, стемминг и лемматизация
- Составление запросов DSL
- Примеры запросов в Elasticsearch
- Советы по повышению релевантности результатов
Основы поисковых запросов в Google
Google поддерживает ряд операторов и синтаксических конструкций, которые позволяют уточнять поиск:
- Кавычки – ищут точную фразу:
"знахарка Новороссия" - Минус – исключает слово:
знахарка -шарлатан - OR (или |) – ищет любое из слов:
знахарка OR целитель - site: – ограничивает поиск по домену:
site:novorossiya.ru знахарка - inurl: и intitle: – ищут в URL или заголовке страницы.
- filetype: – ищет документы определенного типа (PDF, DOC).
- * – wildcard, заменяет любое слово в фразе.
Важно помнить, что Google автоматически применяет stemming (уменьшение слов до основы) и учитывает синонимы, поэтому часто достаточно ввести базовые формы слов.
Примеры запросов для Google
Ниже приведены готовые строки, которые помогут найти информацию о знахарках в Новороссии.
"знахарка Новороссия" травы лечение знахарка OR целитель site:novorossiya.ru "знахарка в Одессе" -отзывы intitle:"знахарка" filetype:pdf "знахарка AND травник" NEAR/5 "Новороссия"
Примечание: оператор NEAR/ работает в расширенном поиске Google через вкладку «Инструменты» → «Все результаты» → «Дополнительные параметры».
Основы поиска в Elasticsearch
Elasticsearch использует DSL (Domain Specific Language) на основе JSON. Запрос состоит из нескольких частей:
- query – собственно условие поиска.
- filter – уточняет результаты без влияния на релевантность (рекомендуется для точных совпадений).
- aggs – агрегации для получения статистики.
- sort – сортировка результатов.
- from / size – пагинация.
Для полнотекстового поиска чаще всего используют запрос match или multi_match.
Анализаторы, стемминг и лемматизация
Чтобы слова идти, идёт, шёл рассматривались как одно и то же понятие, в Elasticsearch применяют:
- Stemming – сокращение слова до основы (например, русский стеммер
russian). - Lemmatization – приведение к словарной форме (лемме) с помощью пользовательских словарей или плагинов (например,
icu_normalizer+icu_collation). - Synonym filter – позволяет задать синонимы вручную (например, «знахарка» ↔ «целительница» ↔ « травница»).
Пример настройки анализатора для русского языка:
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"russian_custom": {
"tokenizer": "standard",
"filter": [
"lowercase",
"russian_stemmer",
"russian_stop",
"my_synonym"
] }
},
"filter": {
"my_synonym": {
"type": "synonym",
"synonyms": [
"знахарка, целительница, травница",
"лекарь, знахар"
]
}
}
}
}
}
После создания индекса с таким анализатором все варианты слов будут приводиться к одной базе, что повышает recall (полноту) поиска.
Составление запросов DSL
Основные типы запросов, полезные для поиска знахарок:
match– анализирует запрос через указанный анализатор.multi_match– ищет по нескольким полям одновременно.bool– комбинирует несколько условий (must, should, must_not, filter).regexp– регулярные выражения (использовать осторожно из‑за нагрузки).fuzzy– допускает небольшие опечатки (например, «знахарка» ↔ «знахарка»).
Пример базового запроса:
GET my_index/_search
{
"query": {
"match": {
"content": {
"query": "знахарка Новороссия",
"analyzer": "russian_custom"
} }
},
"highlight": {
"fields": {
"content": {}
}
}
}
Примеры запросов в Elasticsearch
Ниже представлены готовые DSL‑запросы, которые можно адаптировать под ваш индекс.
Простой полнотекстовый поиск
GET my_index/_search
{
"query": {
"multi_match": {
"query": "знахарка травы лечение",
"fields": ["title^2", "content"],
"type": "best_fields",
"analyzer": "russian_custom"
}
}, "size": 10
}
Поиск с учётом синонимов и исключением шарлатанов
GET my_index/_search
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "знахарка",
"fields": ["title", "content"],
"analyzer": "russian_custom"
}
}
],
"must_not": [
{
"match": {
"content": "шарлатан"
}
}
],
"should": [
{
"match": {
"content": "целительница"
}
},
{ "match": {
"content": "травница"
}
}
],
"minimum_should_match": 1
}
},
"highlight": {
"fields": {
"content": {}
}
}
}
Фильтрация по геопозиции (если в документах есть поле location типа geo_point)
GET my_index/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"content": {
"query": "знахарка",
"analyzer": "russian_custom"
}
}
},
{
"geo_distance": {
"distance": "50km",
"location": {
"lat": 46.48,
"lon": 30.74 // координаты центра Новороссии (пример)
}
}
} ]
}
},
"sort": [
{
"_geo_distance": {
"location": {
"lat": 46.48,
"lon": 30.74
},
"order": "asc",
"unit": "km"
}
}
]
} Поиск с fuzzy‑совпадением (учёт опечаток)
GET my_index/_search
{
"query": {
"fuzzy": {
"content": {
"value": "знахарка",
"fuzziness": "AUTO",
"analyzer": "russian_custom"
}
}
}
}
Советы по повышению релевантности результатов
- Используйте поле‑буст (например,
title^2) – заголовки обычно важнее основного текста. - Применяйте фильтры для точных совпадений (даты, типы документов, геолокация) – они не влияют на score и работают быстрее.
- Настройте синонимы в анализаторе, чтобы охватить разные названия одной профессии («знахарка», «целительница», «травница»).
- Включите подсветку (highlight) – пользователь сразу видит, где найдено совпадение.
- Экспериментируйте с fuzziness – небольшие опечатки в запросах пользователей часто встречаются.
- Мониторьте метрики (CTR, средняя позиция) и корректируйте бусты и фильтры на основе реального поведения пользователей.
Составление эффективных поисковых строк – это сочетание знания синтаксиса поисковых систем и понимания того, как обрабатывается текст внутри них. Для обычного веб‑поиска (Google) достаточно операторов, кавычек и логических связок. В Elasticsearch же ключевую роль играют анализаторы, стемминг, лемматизация и синоним‑фильтры, которые позволяют учесть разнообразие форм русских слов и синонимичные названия профессии.
Применяя представленные примеры и советы, вы сможете быстро находить информацию о знахарках в Новороссии, будь то статьи, форумы, научные работы или архивные документы, а также построить собственный поисковый сервис, который будет выдавать релевантные результаты даже при неточных запросах пользователей.
Удачного поиска!