# Расширенный синтаксис запросов

Методы поиска по ключевому слову / фразе поддерживают расширенный синтаксис запросов. Чтобы указать анализатору, что поисковый запрос содержит операторы из расширенного языка запросов, необходимо передать параметр extendedSyntax (или extended_syntax в более новых методах API).

# Морфология

Независимо от того, в какой словоформе вы употребили слово в запросе, по умолчанию учитываются все его морфологические формы (в любом падеже, в единственном и множественном числе). Т.е., по запросу мама будут также найдены публикации, в которых встречается маму, мамы, мамины, маме, и т.д.

Чтобы изменить это поведение, необходимо использовать оператор =.

# Точное вхождение слова. Оператор =

Оператор = перед словом указывает анализатору, что данное слово нужно искать в точном соответствии с переданным. Запрос =мама найдет только публикации со словом мама. Публикации, в тексте которых встречаются слова маму, мамы, мамины, маме - НЕ будут найдены.

# Поиск по части слова. Оператор *

Оператор * после слова или части слова указывает анализатору, что необходимо искать любые символы после указанных в рамках одного слова.

Запрос мам* найдет публикации со словами как мам, так и мама, маму, мамонт, маммолог, мамай и так далее.

# Поиск по нескольким словам

При передаче в поисковый запрос нескольких слов, разделенных пробелами - будут найдены публикации, в которых встречается каждое из этих слов одновременно.

Запрос мама папа найдет публикации, в тексте которых встречаются оба эти слова одновременно в любом порядке и падеже, на любом расстоянии друг от друга.

# Оператор ИЛИ |

Если требуется найти публикации, в которых встречается хотя бы одно из слов - необходимо использовать оператор ИЛИ |.

Запрос мама | папа найдет публикации, в тексте которых встречается хотя бы одно из этих слов.

# Поиск фразы. Оператор ""

Запрос "мама мыла раму", заключенный в двойные кавычки задает строгий порядок следования слов, поясняя анализатору, что нужно найти переданную фразу целиком. Будут найдены только те публикации, в которых эти три слова стоят рядом в таком же порядке, как указано в запросе.

Публикации, содержащие эти слова в словоформах, отличных от переданных также будут найдены. Чтобы изменить это поведение, необходимо воспользоваться оператором =.

По запросу ="мама мыла раму" будут найдены только те публикации, в которых эти три слова стоят рядом в таком же порядке и в таком же падеже, как указано в запросе.

# Использование минус-слов. Оператор -

С помощью оператора - можно указать какие слова не должны встречаться в тексте публикации. Запрос "мама мыла" -раму покажет публикации, в которых содержатся фразы мама мыла, мамы мыли, ... , но не содержатся слова раму, рамы, и т.д.

# Группировка слов. Оператор ()

Использование круглых скобок в поисковом запросе позволяет группировать части запроса и составлять более сложные комбинации с использованием описанных выше операторов.

Запрос (мама|папа|брат|сестра) (мыла|красила) (раму|дверь) найдет публикации, в тексте которых обязательно встречается хотя бы одно слово из каждой группы слов. Т.е. будут найдены публикации, содержащие: мама мыла раму, папа мыл раму, сестра красила дверь и т.д.

Запрос (мама|папа) (красила) -(раму|дверь|волосы) найдет публикации, в тексте которых обязательно содержится хотя бы одно из слов первой группы мама, папа, обязательно содержится слово из второй группы красил, красила, красили, но не содержатся слова из последней группы раму, дверь, волосы.


Поупражняться в составлении поисковых запросов можно в нашем инструменте для поиска публикаций (не забудьте поставить галочку "Расширенный язык" для включения режима расширенного синтаксиса запросов).