# Расширенный синтаксис запросов
Методы поиска по ключевому слову / фразе поддерживают расширенный синтаксис запросов.
Чтобы указать анализатору, что поисковый запрос содержит операторы из расширенного языка запросов, необходимо передать параметр extendedSyntax
(или extended_syntax
в более новых методах API).
# Морфология
Независимо от того, в какой словоформе вы употребили слово в запросе, по умолчанию учитываются все его морфологические формы (в любом падеже, в единственном и множественном числе).
Т.е., по запросу мама
будут также найдены публикации, в которых встречается маму
, мамы
, мамины
, маме
, и т.д.
Чтобы изменить это поведение, необходимо использовать оператор =
.
# Точное вхождение слова. Оператор =
Оператор =
перед словом указывает анализатору, что данное слово нужно искать в точном соответствии с переданным.
Запрос =мама
найдет только публикации со словом мама
. Публикации, в тексте которых встречаются слова маму
, мамы
, мамины
, маме
- НЕ будут найдены.
# Поиск по части слова. Оператор *
Оператор *
после слова или части слова указывает анализатору, что необходимо искать любые символы после указанных в рамках одного слова.
Запрос мам*
найдет публикации со словами как мам
, так и мама
, маму
, мамонт
, маммолог
, мамай
и так далее.
# Поиск по нескольким словам
При передаче в поисковый запрос нескольких слов, разделенных пробелами - будут найдены публикации, в которых встречается каждое из этих слов одновременно.
Запрос мама папа
найдет публикации, в тексте которых встречаются оба эти слова одновременно в любом порядке и падеже, на любом расстоянии друг от друга.
# Оператор ИЛИ |
Если требуется найти публикации, в которых встречается хотя бы одно из слов - необходимо использовать оператор ИЛИ |
.
Запрос мама | папа
найдет публикации, в тексте которых встречается хотя бы одно из этих слов.
# Поиск фразы. Оператор ""
Запрос "мама мыла раму"
, заключенный в двойные кавычки задает строгий порядок следования слов, поясняя анализатору, что нужно найти переданную фразу целиком.
Будут найдены только те публикации, в которых эти три слова стоят рядом в таком же порядке, как указано в запросе.
Публикации, содержащие эти слова в словоформах, отличных от переданных также будут найдены.
Чтобы изменить это поведение, необходимо воспользоваться оператором =
.
По запросу ="мама мыла раму"
будут найдены только те публикации, в которых эти три слова стоят рядом в таком же порядке и в таком же падеже, как указано в запросе.
# Использование минус-слов. Оператор -
С помощью оператора -
можно указать какие слова не должны встречаться в тексте публикации.
Запрос "мама мыла" -раму
покажет публикации, в которых содержатся фразы мама мыла
, мамы мыли
, ... , но не содержатся слова раму
, рамы
, и т.д.
# Группировка слов. Оператор ()
Использование круглых скобок в поисковом запросе позволяет группировать части запроса и составлять более сложные комбинации с использованием описанных выше операторов.
Запрос (мама|папа|брат|сестра) (мыла|красила) (раму|дверь)
найдет публикации, в тексте которых обязательно встречается хотя бы одно слово из каждой группы слов. Т.е. будут найдены публикации, содержащие: мама мыла раму
, папа мыл раму
, сестра красила дверь
и т.д.
Запрос (мама|папа) (красила) -(раму|дверь|волосы)
найдет публикации, в тексте которых обязательно содержится хотя бы одно из слов первой группы мама, папа
, обязательно содержится слово из второй группы красил, красила, красили
, но не содержатся слова из последней группы раму, дверь, волосы
.
Поупражняться в составлении поисковых запросов можно в нашем инструменте для поиска публикаций (не забудьте поставить галочку "Расширенный язык" для включения режима расширенного синтаксиса запросов).