Help:CirrusSearch/ru

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

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

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


 * Лучшая поддержка поиска на разных языках.
 * Более быстрые обновления поискового индекса, что означает, что изменения в статьях будут отображаться в поиске намного скорее.
 * Expanding templates, meaning that all content from a template is now reflected in search results.

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

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

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

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

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

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


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


 * intitle:foo
 * Find articles whose title contains foo. Stemming is enabled for foo.
 * intitle:"fine line"
 * Find articles whose title contains fine then line. Stemming is enabled. Matches The finest (lines) but not The finest ever lines.
 * intitle:foo bar
 * Find articles whose title contains foo and whose title or text contains 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:" в конец запроса, сохраняется.

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

 * Find articles whose text is most similar to the text of the given articles.
 * The  query works by choosing a set of words in the input articles and run a query with the chosen words. You can tune the way it works by adding the following parameters to the search results URL:
 * : Minimum number of documents (per shard) that need a term for it to be considered.
 * : Maximum number of documents (per shard) that have a term for it to be considered.
 * : Maximum number of terms to be considered.
 * : Minimum number of times the term appears in the input to doc to be considered. For small fields this value should be 1.
 * : Minimal length of a term to be considered. Defaults to 0.
 * : The maximum word length above which words will be ignored. Defaults to unbounded (0).
 * (comma separated list of values): These are the fields to use. Allowed fields are,  ,  ,  ,   and.
 * ( | ): use only the field data. Defaults to : the system will extract the content of the   field to build the query.
 * : The percentage of terms to match on. Defaults to 0.3 (30 percent).
 * Example:
 * These settings can be made persistent by overriding  in Help:System message.
 * Find articles in the talk namespace whose title or text contains the word foo
 * Ищет в текущей вики или в централизованном хранилище страницы в пространстве имён файлов, чьи названия или текст содержат заданное слово
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища
 * Ищет в текущей вики или в централизованном хранилище страницы в пространстве имён файлов, чьи названия или текст содержат заданное слово
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища
 * Вы можете добавить  в запрос (в виде   ) для удаления результатов из централизованного хранилища

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

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

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

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

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

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

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

hastemplate:
You can find pages that use a certain template by adding the filter  to the search. We provide for the usual "syntactic sugar" of template calls. This means the lenient pagename and fullpagename capitalization works, and the main namespace abbreviation, ":" works. For example to find which pages transclude Quality image the full search (in all your preferred namespaces) can be: , and for that same template name in the main namespace, this works. You can omit the quotes if the template title does not contain a space. will filter pages that do not contain that template.

For wikitext that calls a template directly, you can use insource:, but hastemplate: searches the "post-expansion inclusion", so hastemplate: can find a template acting only temporarily as a "secondary template" or "meta-template", which are seen in neither the source nor content, ( but only included as a helper to any other template producing the final content). All content from a template is now reflected in search results is still the relevant philosophy here.

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 content search in that they are fast but ignore punctuation.


 * and
 * These run Regular expressions against the page wikitext. 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. The version with the extra  runs the expression case insensitive, and is even less efficient.


 * Tip: Instead of running insource: searches directly, these return much much faster if they always run on filtered results, such as:
 * Regex characteristically need to be honed before being released in the wild. To sharpen a new /regex/ for a wiki-side search, simply start with an intitle: filter of an article-space pagename, or for any other namespace, such as your user sandbox, use a prefix: filter on a fullpagenames. In article space a prefix: search works just as well, but its syntax is less intuitive, because prefix: must go after, but it still filters firstly.
 * Regex characteristically need to be honed before being released in the wild. To sharpen a new /regex/ for a wiki-side search, simply start with an intitle: filter of an article-space pagename, or for any other namespace, such as your user sandbox, use a prefix: filter on a fullpagenames. In article space a prefix: search works just as well, but its syntax is less intuitive, because prefix: must go after, but it still filters firstly.
 * Regex characteristically need to be honed before being released in the wild. To sharpen a new /regex/ for a wiki-side search, simply start with an intitle: filter of an article-space pagename, or for any other namespace, such as your user sandbox, use a prefix: filter on a fullpagenames. In article space a prefix: search works just as well, but its syntax is less intuitive, because prefix: must go after, but it still filters firstly.
 * Regex characteristically need to be honed before being released in the wild. To sharpen a new /regex/ for a wiki-side search, simply start with an intitle: filter of an article-space pagename, or for any other namespace, such as your user sandbox, use a prefix: filter on a fullpagenames. In article space a prefix: search works just as well, but its syntax is less intuitive, because prefix: must go after, but it still filters firstly.


 * If the regexp contains whitespace, you must either backslash-escape each space character,, or put everything after insource: in quotes,  . The metacharacters   must be backslash-escaped or escaped by virtue of being in a character class in square brackets like   or  , or else they have their usual metacharacter meaning. See the explanation of the syntax and the Lucene grammar for regular expressions.


 * For example, to find usage of a template called Val with an unnamed parameter of four-digits having a possible minus sign and, on the same page, Val with a named parameter "fmt=commas":

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