6.5.15

Open Source Search Engines


In this post I'm going to provide links to the most popular Open Source Search Engines. You can use them for searching information on your own computer or server. You can also study the source code to get the idea about how search engines are built. My aim is just to explore available resources and gather relevant information for you.

INDRI
  • Parses PDF, HTML, XML, and TREC documents
  • API can be used from Java, PHP, or C++
  • Works on Windows, Linux, Solaris and Mac OS X
  • Can be used on a cluster of machines for faster indexing and retrieval
  • Last update 01/05/2015
Apache Lucene
  • 100%-pure Java
  • small RAM requirements -only 1MB heap
  • index size roughly 20-30% the size of text indexed
  • fast, memory-efficient and typo-tolerant
  • ranked searching
  • many powerful query types
  • Cross-Platform Solution
  • pluggable ranking models

Lucene implementations in languages other than Java:

C++, .NET, Objective-C, C, Python, Perl, Ruby, Common Lisp, Zend Framework for PHP 5 and etc.

Managing Gigabytes for Java
  • Java
  • efficient implementation of phrase queries, proximity restrictions, ordered conjunction, and combined multiple-index queries
  • Indices can be built for a collection split in several parts, and combined later
  • Indices can be clustered both lexically and documentally
Swish-e
  • can index plain text, e-mail, PDF, HTML, XML, Microsoft® Word/PowerPoint/Excel
  • Includes a web spider for indexing remote documents over HTTP
  • Can report structural errors in your XML and HTML documents
Terrier IR Platform (written in Java), can support corporas written in languages other than English.

Xapian - written in C++, with bindings to allow use from Perl, Python, PHP, Java, Tcl, C#, Ruby, Lua, Erlang and Node.js. The latest stable version is 1.2.20, released on 2015-03-04.

ht://Dig Search Engine Software (download the most recent version)

Zettair (written in C).

9.11.09

Ссылки, гиперссылки, внутристраничные ссылки, ссылки электронной почты.

Сегодня мы научимся делать ссылки ; )
Это ооочень легко и просто...
Обычные ссылки создаются при помощи якорного элемента
<a> и </a>
Гиперссылки (используются намного чаще)создаются при помощи якорного элемента и атрибута href



<a href="http://mir-web.blogspot.com/2009/10/html_3650.html">Урок 1</a>


Вот что должно получиться:

Урок 1

Немного теории...
Есть 2 типа связывания: абсолютное и относительное.
Абсолютное - когда указывается полный адрес, включая имя файла:



<a href="http://mir-web.blogspot.com/lesson1.html">Урок 1</a>


Относительное - когда указывается только ИМЯ файла (при этом файлы должны находиться на одном сервере в одной папке).



<a href="lesson1.html">Урок 1</a>


Если документ находится в подкаталоге, указывается подкаталог:



<a href="uroki-html/lesson1.html">Урок 1</a>


Можно переместиться из каталога в другой каталог, находящийся уровнем выше:



<a href="../uroki-html/lesson1.html">Урок 1</a>



Для того, чтобы дать подробное описание ссылки используется атрибут title



<a href="http://mir-web.blogspot.com" title="Сайт об HTML и CSS">Мир Веб</a>


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



<a href="mailto:tut-address@kakoy-to.com">Напишите нам</a>


Результат:
Напишите нам
Также можно заранее указать тему сообщения:



<a href="mailto:tut-address@kakoy-to.com?subject=feedback">Напишите нам</a>


Также, как и в предыдущем примере, можно использовать атрибут title

Внутристраничное связывание
Например, есть некая страница, которая очень большая по объему и включает в себя несколько разделов...
Неплохо было бы сделать навигацию по странице..Как? Все очень просто.
Предположим, что в начале страницы Вы даете список главных тем, например:

Урок 1
Урок 2
Урок 3

Создаем не совсем обычные ссылки ; )



<a href="#urok1">Урок 1</a>
<a href="#urok2">Урок 2</a>
<a href="#urok3">Урок 3</a>


А в том месте документа, где уже идет содержание уроков задаем ИМЕНА:



<a name="urok1">Урок 1</a>
<a name="urok2">Урок 2</a>
<a name="urok3">Урок 3</a>


Внимание! В языке XHTML 1.1 атрибут name полностью заменен на id.

Можно также связать документ с определенным местоположением другого документа:



<a href="urok1.html#zaqolovki">Читайте подробнее о заголовках</a>


В документе, на который ссылаемся:



<a name="zaqolovki">Заголовки</a>

22.10.09

Объявление DOCTYPE, МЕТА теги

Не хочу откладывать с объявлением DOCTYPE и с META тегами...
Так вот, мы с вами пишем страничку не на простом html а на золотом...на xhtml, конечно для Вас сейчас это не имеет никакого значения, так что предысторию мы пропустим ;)
Все XHTML ДОКУМЕНТЫ начинаются вот с такого объявления:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd">


Что это такое объяснять не буду, это пока не так важно.
далее должно быть вот что:



<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">


Это тоже для дядей, которые придумали XHTML...
xml:lang="ru" lang="ru" - говорит о том, что наш документ на русском языке, если он не на русском а на английском, то просто поменяйте ru на en
xml:lang="en" lang="en"
Но можно обойтись и без указания языка..

Затем начинается "голова" документа, внутри которого рамещаются МЕТА теги, название страницы и еще много чего )
Я люблю указывать сначала мета теги, а затем название ;)


<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />


charset=windows-1251 - говорит нам о том, что документ написан на кириллице. Можно изменить кодировку, если мы пишем на другом языке, но об этом позже.



<meta name="keywords" content="тут ключевые слова"/>
<meta name="description" content="тут описание сайта"/>
<meta name="Author" content="тут имя автора сайта"/>


Думаю, тут все ясно. Ключевые слова зависят от тематики сайта. Например, если сайт посвящен музыке, то ключевые слова будут примерно такими:
Музыка, все о музыке, mp3, скачать бесплатно мелодии для мобильного и т.д.
Одно и тоже слово можно повторять только в сочетании с другими ключевыми словами.
Ключевые слова должны разделяться запятой.
Можно посмотреть ключевые слова любого сайта, да и не только ключевые слова, но и весь код. Это очень полезно ; )
Как это делается?
В браузере OPERA:


В IE:


То что пишем дальше Вам уже знакомо, так что смотрите полный код нашей странички ; )





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<meta name="keywords" content="тут ключевые слова"/>
<meta name="description" content="тут описание сайта"/>
<meta name="Author" content="тут имя автора сайта"/>

<title>
тут название сайта
</title>

</head>

<body>

тут основное содержимое, которое отображается на экране монитора ; )
</body>

</html>

17.10.09

Упорядоченные списки, неупорядоченные списки, вложенные списки, списки определений

Основное правило HTML и XHTML - ВСЕ ТЕГИ должны быть ВЛОЖЕНЫ друг в друга, как матрешки.
Например, следуйщий код - НЕверный:


<html>
<head>
<body>
<head>
</body>
</html>


ВЕРНО:



<html>
<head>
</head>
<body>
</body>
</html>





    Используя это правило, научимся создавать:
  • Упорядоченные списки

  • Неупорядоченные списки

  • Вложенные списки



То что Вы только что прочитали - и есть список, в данном случае он НЕУПОРЯДОЧЕННЫЙ..Но как мы его создали?
Добавьте следующий код к коду из урока 1 (между тегами <body> и </body>)



<ul>
Тут начинаем что-нибудь перечислять, например, что нужно для приготовления салата:
<li>Помидор</li>
<li>Огурец</li>
<li>Зелень</li>
<li>Лук</li>
</ul>


Обратите внимание, что теги <li> и </li> должны быть вложены в теги <ul> и </ul>

А теперь создаем упорядоченный список:



<ol>
Начинаем что-нибудь перечислять, например, что нужно для приготовления салата:

<li>Помидор</li>
<li>Огурец</li>
<li>Зелень</li>
<li>Лук</li>
</ol>




Результат:


    Начинаем что-нибудь перечислять, например, что нужно для приготовления салата:
  1. Помидор

  2. Огурец

  3. Зелень

  4. Лук



Вложенные списки:



В канцелярском магазине я купила:
<ol>
<li>Скрепки</li>
<li>Ручки
<ul>
<li>Зеленые</li>
<li>Красные</li>
<li>Черные</li>
</ul>
</li>
<li>Тетради
<ul>
<li>в клетку</li>
<li>в линию</li>
</ul>
</li>
</ol>


Результат:

В канцелярском магазине я купила:
  1. Скрепки
  2. Ручки
    • Зеленые
    • Красные
    • Черные
  3. Тетради
    • в клетку
    • в линию



Списки определений:

    состоят из 3-х элементов:
  • <dl> и </dl> - элемент списка (что-то вроде <ul> и </ul>

  • <dt> и </dt> - термин (то что нужно определить)

  • <dd> и </dd> - определение


Сейчас все будет ясно ; )



<dl>
<dt>Тарелка</dt>
<dd>Столовая посуда круглой формы с широким плоским дном и приподнятыми краями.</dd>
<dd>Неопознанный летающий объект, летающая тарелка; НЛО.</dd>
<dt>Вилка</dt>
<dd>Один из предметов столового прибора с несколькими зубьями на ручке, которым берут куски пищи.</dd>
<dd>Название различных деталей, устройств, приспособлений, имеющих раздвоенный конец.</dd>
</dl>


Результат:

Тарелка

Столовая посуда круглой формы с широким плоским дном и приподнятыми краями.

Неопознанный летающий объект, летающая тарелка; НЛО.
Вилка

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

Название различных деталей, устройств, приспособлений, имеющих раздвоенный конец.




Вот и весь секрет ; )

15.10.09

Заголовки html, добавление абзацев, разрыв строки

В языках HTML и XHTML существуют теги для заголовков 6-ти уровней.
Добавьте этот код к коду из урока 1 (между тегами <body> и </body>) и посмотрите что у Вас получилось:




<h1>Это заголовок 1</h1>
<h2>Это заголовок 2</h2>
<h3>Это заголовок 3</h3>
<h4>Это заголовок 4</h4>
<h5>Это заголовок 5</h5>
<h6>Это заголовок 6</h6>





У Вас должно получиться примерно следующее...

Это заголовок 1


Это заголовок 2


Это заголовок 3


Это заголовок 4


Это заголовок 5

Это заголовок 6


Заголовок заключенный в теги <h1> и </h1> - считается самым важным, приравнивается к заголовку страницы; в теги <h2> и </h2> - к подзаголовку и тд.

Далее мы научимся изменять размер и цвет заголовков, но пока просто запомните эти теги.

Чтобы заключить текст в абзац используйте теги



<p> и </p>




Например,



<p>В истории Европейского музыкального искусства эпоха Ренессанса открывает новый период огромного значения. Она дала сильнейшие импульсы для последующего развития музыкальной культуры.</p>
<p>Большие социальные процессы определяли и направляли пути новой европейской культуры Ренессанса, она формировалась как гуманистическая буржуазная культура.</p>


Текст будет выглядеть так:

В истории Европейского музыкального искусства эпоха Ренессанса открывает новый период огромного значения. Она дала сильнейшие импульсы для последующего развития музыкальной культуры.

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


( История музыки. Эпоха Ренессанса. )


Вы наверное заметили, что нет привычного ОТСТУПА в начале первой строки абзаца, но мы это сможем исправить вдальнейшем, изучив Каскадные таблицы стилей CSS...

А теперь разместите между тегами <body> и </body> следующий код:





<p> Я памятник себе воздвиг нерукотворный,
К нему не зарастёт народная тропа,
Вознёсся выше он главою непокорной
Александрийского столпа. </p>

<p>Нет, весь я не умру - душа в заветной лире
Мой прах переживёт и тлeнья убежит -
И славен буду я, доколь в подлунном мире
Жив будет хоть один пиит. А.С.Пушкин </p>





Обратите внимание, что у нас в коде каждой строке стихотворного текста отведена новая строка, но при просмотре документа через браузер (в формате html) мы увидим следующее:

Я памятник себе воздвиг нерукотворный,К нему не зарастёт народная тропа,Вознёсся выше он главою непокорной Александрийского столпа.



Нет, весь я не умру - душа в заветной лире Мой прах переживёт и тлeнья убежит -И славен буду я, доколь в подлунном мире Жив будет хоть один пиит. А.С.Пушкин



Все это происходит потому что браузер игнорирует переводы строк и пробелы (более 1)...
Так как же перевести строку?
Все очень просто! После каждой строчки текста просто поставьте тег <br/>





<p> Я памятник себе воздвиг нерукотворный,<br/>
К нему не зарастёт народная тропа,<br/>
Вознёсся выше он главою непокорной<br/>
Александрийского столпа. </p>

<p>Нет, весь я не умру - душа в заветной лире<br/>
Мой прах переживёт и тлeнья убежит -<br/>
И славен буду я, доколь в подлунном мире<br/>
Жив будет хоть один пиит.<br/>
А.С.Пушкин </p>






Итак, полный код нашего сегодняшнего урока:





<html>
<head>
<title>
Моя первая WEB страничка!
</title>
</head>
<body>
<h1>Это заголовок 1</h1>
<h2>Это заголовок 2</h2>
<h3>Это заголовок 3</h3>
<h4>Это заголовок 4</h4>
<h5>Это заголовок 5</h5>
<h6>Это заголовок 6</h6>

<p>

В истории Европейского музыкального искусства эпоха
Ренессанса открывает новый период огромного значения.
Она дала сильнейшие импульсы для последующего
развития музыкальной культуры.
</p>
<p>
Большие социальные процессы определяли и направляли
пути новой европейской
культуры Ренессанса,она формировалась как гуманистическая
буржуазная культура.
</p>

<p> Я памятник себе воздвиг нерукотворный,<br/>
К нему не зарастёт народная тропа,<br/>
Вознёсся выше он главою непокорной<br/>
Александрийского столпа. </p>

<p>Нет, весь я не умру - душа в заветной лире<br/>
Мой прах переживёт и тлeнья убежит -<br/>
И славен буду я, доколь в подлунном мире<br/>
Жив будет хоть один пиит.<br/>
А.С.Пушкин </p>

</body>
</html>




Как создать свой сайт?