Help:CirrusSearch/ru

CirrusSearch — новый поисковый движок для MediaWiki. Фонд Викимедиа переходит на CirrusSearch, поскольку он содержит ключевые улучшения по сравнению с ранее используемой поисковой системой, LuceneSearch. Эта страница описывает новые либо изменившиеся по сравнению с прошлым движком возможности.

Часто задаваемые вопросы
Если вашего вопроса здесь нет, не стесняйтесь задать его на странице обсуждения, и кто-нибудь обязательно ответит вам.

Что улучшено?
Новый поисковой движок включает три главных улучшения:


 * Лучшая поддержка поиска на разных языках.
 * Более быстрые обновления поискового индекса, что означает, что изменения в статьях будут отображаться в поиске намного скорее.
 * Раскрывающиеся шаблоны: всё содержимое статьи, относящейся к шаблону, будет отображено в результатах поиска.

Обновления
Обновления поискового индекса происходят практически в реальном времени. У вас должна быть возможность находить сделанные вами изменения сразу после их внесения. Правки шаблонов должны отражаться в статьях, куда эти шаблоны включены, уже спустя несколько минут. Однако обработка изменений в шаблонах связана с длиной очереди задач, производительность которой может варьироваться. Нулевая правка в статье позволяет обойти очередь, но в ней нет необходимости, если всё работает нормально.

Поисковые подсказки
Выпадающий список, который вы видите, вводя запрос в окно поиска, состоит из статей, названия которых начинаются с введённой вами фразы; они отсортированы, исходя из количества внешних ссылок на них. Стоит отметить, что если вы начинаете поисковый запрос со знака ~, статьи предлагаться не будут; вы можете в любой момент нажать «Enter» и перейти на страницу результатов поиска.

Символы ASCII, надстрочные и подстрочные знаки для английского текста включены, однако при этом возможны проблемы с форматированием результатов поиска (см. 52656).

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

Поддержка морфологии (словоформ)
Реализована поддержка для десятков языков, но желательна поддержка всех языков. Список поддерживаемых языков: elasticsearch.org; чтобы отправить запрос или правку, смотрите документацию о вкладе в проект.

Фильтры (intitle:, incategory:, linksto:)


Мы немного ужесточили синтаксис этих фильтров.


 * intitle:foo
 * Находит страницы, заголовок которых содержит "foo" (с учётом производных).
 * intitle:"foo bar"
 * Находит страницы, заголовок которых содержит "foo" и "bar" (оба слова с учётом производных).
 * intitle:foo bar
 * Находит страницы, заголовок которых содержит "foo" и заголовок или текст содержит "bar".
 * -intitle:foo bar
 * Находит страницы, заголовок которых не содержит "foo" и заголовок или текст содержит "bar".
 * intitle: foo bar
 * Синтаксическая ошибка, приводит к поиску страниц, заголовок или текст которых содержит "intitle:", "foo" и "bar".
 * incategory:Music
 * Находит страницы, входящие в категорию Category:Music
 * incategory:"music history"
 * Находит страницы, входящие в категорию Category:Music_history
 * incategory:"musicals" incategory:"1920"
 * Находит страницы, входящие одновременно в категории Category:Musicals и Category:1920
 * -incategory:"musicals" incategory:"1920"
 * Находит страницы, которые входят в категорию Category:1920, но не входят в Category:Musicals
 * cow*
 * Находит страницы, заголовок или текст которых содержит слова, начинающиеся с "cow"
 * linksto:Help:CirrusSearch
 * находит статьи, ссылающиеся на эту страницу
 * -linksto:Help:CirrusSearch CirrusSearch
 * находит статьи, которые упоминают CirrusSearch, но не ссылаются на страницу Help:CirrusSearch

prefix:
Синтаксис «prefix:» в его нынешнем виде предполагает множество функций, поэтому должен быть воспроизведён максимально точно.


 * prefix:cow
 * Находит среди имён содержания статьи, название которых начинается со слова "cow".
 * domestic prefix:cow
 * Находит среди имён содержания статьи, название которых начинается со слова "cow" и которые содержат слово "domestic".
 * domestic prefix:Cow/
 * Находит среди имён содержания все дополнительные страницы статьи "Cow", которые содержат слово "domestic". Это довольно распространённый тип поиска, который часто задаётся с использованием особого параметра URL:.
 * domestic prefix:Talk:Cow/
 * Находит среди имён обсуждений все дополнительные страницы страницы обсуждения "Talk:Cow", которые содержат слово "domestic".
 * cow prefix:Pink Floyd/
 * Находит среди имён содержания все дополнительные страницы статьи "Pink Floyd", которые содержат слово "cow". Наличие пробела не имеет значения.

Помните: старое правило, требующее постановки "prefix:" в конец запроса, сохраняется.

Особые префиксы

 * Ищет статьи, текст которых содержит слова, похожие на текст заданных статей.
 * Ищет в пространстве обсуждений статьи, чьи названия или текст содержат слово "foo".
 * Ищет в текущей вики или в централизованном хранилище страницы в пространстве имён файлов, чьи названия или текст содержат заданное слово
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища
 * Ищет в текущей вики или в централизованном хранилище страницы в пространстве имён файлов, чьи названия или текст содержат заданное слово
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища

Возможно, вы имели в виду...
Предложение «Возможно, вы имели в виду...» предупреждает, что вы ввели фразу, которая вряд ли может быть названием статьи. Если это так, то система сообщает вам об этом. При этом иной раз предлагается больше вариантов, чем следовало бы.

Предпочтительные совпадения фраз
Если ваш запрос не содержит большого количества специального синтаксиса, мы даём зелёную улицу вариантам с точным соответствием. Я сознательно выражаюсь расплывчато, поскольку до конца не уверен, что считать «большим количеством специального синтаксиса». Короче говоря, если вы добавите к своему запросу любые явные фразы, мы отключим эту возможность.

Нечёткий поиск
Добавление символа ~ после поискового запроса (но без двойных кавычек) включает нечёткий запрос. Можно также указать число от 0 до 1 для управления степенью «нечёткости»: например, кошмар~.9 или молни~.1 или молни~0.1. Чем ближе к единице, тем чётче поиск.

Поиск по фразе и степень близости
Заключение нескольких слов в кавычки означает, что вы ищете эти слова, стоящие близко друг к другу. Можно добавить ~ и затем, после второй кавычки, — число, означающее, насколько близко стоят эти слова. По умолчанию это число равно 1.

Цитаты и точные совпадения
Кавычки предполагают точное соответствие запросу. Можно добавить ~ после кавычек, чтобы добиться менее строгого совпадения, включающего больше результатов.

prefer-recent:
Вы можете предоставить недавно редактированным статьям приоритет в результатах поиска, добавив оператор «prefer-recent:» («предпочесть недавнее»)в начало запроса. По умолчанию он позволит вычислять 60 % поисковой оценки страницы экспоненциально с учётом времени, прошедшего с последнего редактирования, и с периодом «полураспада» в 160 дней. Оператор может быть изменён следующим образом: «prefer-recent:<доля_результатов_по_времени>,<период_полураспада_в_днях>». «Доля_результатов_по_времени» должна быть числом от 0 до 1 включительно. «Период_полураспада_в_днях» должен быть больше 0 и допускает применение десятичных дробей. Это число работает тем лучше, чем оно меньше. Я тестировал величину .0001, равную 8,64 секунды.

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

hastemplate:
Можно оставить в результатах только страницы, которые используют некий шаблон, добавив в поисковый запрос. Мы пытаемся эмулировать синтаксис включения шаблона, поэтому  находит страницы с , а   будет находить включения статьи   в основном пространстве имён. Можно опустить кавычки, если название шаблона, который вы ищете, не содержит пробелов. отфильтрует страницы, не содержащие этот шаблон.

Можно комбинировать все виды хитрого поискового синтаксиса — например, чтобы получить только изображения, относящиеся к Китаю, и только среднего качества:.

boost-templates:
Можно увеличить поисковую оценку страниц в зависимости от того, какие шаблоны они содержат. Это можно сделать прямо в поисковом запросе при помощи  или установив умолчание для всех запросов через новое сообщение. заменяет содержимое, если оно было указано. Синтаксис слегка специфический, но выбран для наглядности. Примеры:


 * Ищет файлы в категории "Китай", сортируя качественные изображения в начало.
 * Ищет файлы в категории "Китай", сортируя качественные изображения в начало.


 * Ищет файлы в категории "Китай", сортируя высококачественные изображения в начало, а низкокачественные - в конец.
 * Ищет файлы в категории "Китай", сортируя высококачественные изображения в начало, а низкокачественные - в конец.


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

Не пытайтесь добавлять десятичные дроби к процентным числам. Они не работают, а кроме того, поисковая оценка страниц устроена так, что они вряд ли на что-то повлияют.

A word of warning about : if you add really really big or small percentages they can poison the full text scoring. Think, for example, if enwiki boosted featured articles by a million percent. Then searches for terms mentioned in featured articles would find the featured articles before exact title matches of the terms. Phrase matching would be similarly blown away so a search like  would find a featured article with those words scattered throughout it instead of the article for Brave New World.

Sorry for the inconsistent  in the name. Sorry again but the quotes are required on this one. Sorry also for the funky syntax. Sorry we don't try to emulate the template transclusion syntax like we do with.

insource:
will search text just in the wikitext. This will pick up template parameter names, URLs in link tags, etc. It has two flavors:
 * and
 * These work pretty similarly to  or regular text search in that they are fast but ignore punctuation.


 * and
 * These run Regular expressions against the page source. They aren't efficient and we only allow a few of them to run at a time on the search cluster but they are very powerful. See the explanation of the syntax and the Lucene grammar for regular expressions. The version with the extra  runs the expression case insensitive and is even less efficient. Note that if the regexp contains whitespace, you must either escape each space character (\ ) or put everything after   in quotes (insource:"/foo bar/").
 * Tip: These return much much faster if there are other filters. Instead of searching for  search for.

Auxiliary Text
Cirrus considers some text in the page to be "auxiliary" to what the page is actually about. Examples include table contents, image captions, and "This article is about the XYZ. For ZYX see ZYX" style links. You can also mark article text as auxiliary by adding the  class to the html element containing the text.

Auxiliary text is worth less than the rest of the article text and it is in the snippet only if there are no main article snippets matching the search.

Lead Text
Cirrus assumes that non-auxiliary text that is between the top of the page and the first heading is the "lead in" paragraph. Matches from the lead in paragraph are worth more in article ranking.

Commons Search
By default when the search contains the file namespace, Cirrus will search commons as well. You can disable this behavior by adding  to the search. If you are using a namespace prefix to select the namespace the syntax looks like. If you aren't using a namespace prefix to select the namespace then the syntax looks like.

См. также

 * Full specifications in the browser tests