Расширенный поиск

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

Контекст - это индекс источника содержимого на основе ключевых слов. Это сайт проекта или курса, на котором хранится содержимое. Когда производится простой поиск, инструмент "Поиск"добавляет к слову поиска +content:<currentsiteid> , где <currentsiteid> - это контекст, или ID сайта, на котором производится поиск. Такой запрос можно перевести как "результаты должны находиться в пределах этого сайта".

При поиске можно пользоваться любыми индексами. Например, можно искать только среди объявлений. Тогда запрос может выглядеть так: +tool:announcement +content:cowslip , а в результате вы получите только объявления, содержащие слово "cowslip".

Словарный указатель содержит следующие типы индексов:

Информация о Lucene Search

В основе обработки запросов лежит Apache Lucene. Подробнее смотри на http://lucene.apache.org/java/docs/queryparsersyntax.html.

Определения

Запрос состоит из слов и операторов. Слова делятся на отдельные слова и фразы.

Отдельное слово - это просто отдельно взятое слово, например, "тест" или "превед".

Фраза - это группа слов, взятых в кавычки, например, "превед медвед".

Несколько отдельных слов можно объединить с помощью Булевых операторов, чтобы создать более сложный запрос (смотри ниже).

Поиск по окружению

Lucene поддерживает поиск слов, которые находятся на заданном расстояниии друг от друга. Чтобы произвести поиск по окружению, используйте символ "~" в конце фразы. Например, для того, чтобы найти слова "apache" и "jakarta" на расстоянии не более 10 слов друг от друга, используйте запрос:

"jakarta apache"~10

Булевы операторы

Булевы опрераторы позволяют объединять слова поиска с помощью логических союзов. Lucene позволяет использовать AND, "+", OR, NOT и "-" в качестве Булевых операторов (Внимание: Булевы опреаторы должны указываться ТОЛЬКО ПРОПИСНЫМИ буквами).

OR

OR - это оператор конъюнкции, т.е. знак ИЛИ. Он является Булевым оператором по умолчанию. Иначе говоря, если между словами не стоит никакой Булев оператор, то запрос обрабатывается , будто между ними стоит OR. Этот оператор связывает два слова поиска, а результатом поиска считается документ, в котором встречается хотя бы одно из этих слов. Вместо слова OR можно использовать символ || .

Чтобы найти документы, которые содержат "jakarta apache" или посто "jakarta", используйте запрос:

"jakarta apache" jakarta

или

"jakarta apache" OR jakarta

AND

Оператору AND удовлетворяют документы, в которых присутствуют оба слова поиска, неважно, в каком месте документа каждое из них находится. Вместо слова AND можно использовать символ && .

Чтобы найти документы, которые содержат "jakarta apache" и "Apache Lucene", используйте запрос:

"jakarta apache" AND "Apache Lucene"

+

Оператор "+" указывает, что в искомом документе должно обязательно встречаться слово, которое идет после "+".

Например, чтобы найти документы, которые должны содержать слово "jakarta" и возможно, также содержат слово "apache", используйте запрос:

+jakarta apache

NOT

Оператор NOT исключает из результатов поиска слово после NOT. Вместо слова NOT можно использовать сиимвол !

Чтобы найти документы, которые содержат "jakarta apache", но не содержат "Apache Lucene", используйте запрос:

"jakarta apache" NOT "Apache Lucene"

Внимание: Оператор NOT нельзя использоватиь в запросах, в которых участвует лишь одно слово. Например, такой поиск результатов не принесет:

NOT "jakarta apache"

-

Оператор "-" исключает из результатов поиска документы, которые содержат слово, указанное после символа "-".

Чтобы найти документы, которые содержат "jakarta apache", но не содержат "Apache Lucene", используйте запрос:

"jakarta apache" -"Apache Lucene"

Группировка

Lucene позволяет с помощью круглых скобок группировать условия поиска, чтобы формировать подзапросы. Это удобно, если вы применяете в запросах Булевы операторы.

Чтобы найти документ, в котором встречается одно из слов "jakarta" или "apache", и еще обязательно встречается "website", используйте запрос:

(jakarta OR apache) AND website

Избегайте специальных символов

Необходимо избегать в тексте поиска специальных символов, которые используются в синтаксисе языка запросов:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

Если вам нужно употребить какие-либо из этих символов в стоке поиска, ставьте знак \ перед ним. Например, для поиска формулы (1+1):2 придется составить запрос вида:

\(1\+1\)\:2