Выпущен новый снапшот DataparkSearch Engine. Он доступен на Google Drive или on GitHub.

Изменения от предыдущего снапшота:

  • добавлено задание таймаута чтения для сокета на основе значения таймаута чтения документа
  • добавлена поддержка библиотек wolfssl и mbedtls
  • добавлено отслеживание таймаутов для https
  • убрана поправка на вес сервера перед записью URL PopRank в данные об URL
  • исправлена компиляция без openssl
  • улучшено определение OpenSSL
  • добавлен ключ --enable-mcmodel для configure
  • исправлены флаги компиляции свободной от нитей версии libdpsearch в случае сборки без модуля Apache
  • переход на CRYPTO_THREADID для OpenSSL 1.0.0 и выше
  • небольшие исправления и обновления

Выпущен новый снапшот DataparkSearch Engine. Он доступен на Google Drive или on GitHub.

Изменения от предыдущего снапшота:

  • Исправлена схема SQL для MySQL5
  • Исправлено падение при обработке ссылок без указанной схемы
  • Новое определение версии Apache
  • Исправлено построение crossword секции
  • HTML тэги p, option и input теперь могут быть секциями
  • Более тонкая спячька для нитей при невозможности залочить мютекс
  • Исправлена компиляция на FreeBSD 10
  • Добавлена команда Robots collect
  • Исправлено падение при задании лимита dt:minute
  • Выключена обработка карт-сайтов для Server/Realm/Subnet с указанным аттрибутом nofollow
  • Ряд незначительных исправлений

Я планирую прекратить поддержку Apache 1.3 в будущем, дайте мне знать, если вы все еще его используете.

1

Выпущен новый снапшот DataparkSearch Engine версии 4.54. Вы можете скачать его с Google Drive.

Ниже дан список изменений с момента выпуска предыдущего снапшота:

  • Секция Crossword теперб включает значения аттрибута TITLE тэга IMG и значения атрибутов ALT и TITLE тэгов A и LINK, найденных на страницах, ссылающихся на индексируемый документ
  • Мета PROPERTY теперь индексируется
  • Мета-информация об URL теперь сохраняется для всех документов с HTTP статус-кодом < 400
  • configure скрипт теперь понимает ключ --without-libextractor, позволяющий собрать dpsearch без поддержки libextractor даже если эта библиотека установлена
  • Включена поддержка robots.txt для сайтов, индексируемых с использованием HTTPS
  • Добавлена команда AuthPing, позволяющая посылать авторизационные запросы перед началом индексирования сайта. См. детали ниже.
  • Добавлена команда Cookie
  • Добавлена поддержка SOCKS5 прокси серверов без авторизации или с использованием авторизации по логину и паролю. См. детали ниже.
  • небольшие исправления

...читать далее "dpsearch-4.54-2015-07-06"

Доступен новый снапшот DataparkSearch Engine: dpsearch-4.54-2014-01-09.

Основные отличия от предыдущего снапшота:

  • Добавлены часовой и минутный тип лимитов
  • Исправлена компиляции при указании ключа --without-aspell для configure
  • Исправлено испольщование неиницализированного значения в некоторых случаях при использовании aspell

Пример использования минутного лимита для ограничения поиска по времени (по умолчанию используется часовой тип лимита).
...читать далее "dpsearch-4.54-2014-01-09"

Доступен новый снапшот DataparkSearch Engine: dpsearch-4.54-2013-12-31.

Основные отличия от предыдущего снапшота:

  • улучшено определение кодировки/языка в случае когда они указаны либо только в мета, либо только в заголовках ответа сервера
  • исправлено зацикливание а случае, когда значение htdblimit не задано в файле конфигурации
  • Исправлено возможное падение при неиспользовании расширений aspell
  • Добаылены команды AllowIf/DisallowIf
  • исправлено автоматическое построение IDN-шаблона для команды 'Server page'
  • дабавлена записть данных об URL для страниц переадресации в случае включенной поддержки поддокументов
  • Восстановлена работа функции зеркалирования проиндексированных сайтов
  • Добавлено добавление значения атрибута alt тэга img в секцию кросс-слов crossword для изобращения, на которое указывает этот тэг

Соответствующие пэкаджи в формате Ubuntu/Debian и RPM доступны во вкладке Download на Google Code.

Ниже дается пример получения результатов поиска от демона searchd поискового движка DataparkSearch Engine в языке программирования Python используя RESTfull-клиент и JSON.
...читать далее "Доступ к результатам DataparkSearch из Python"

Ниже даётся пример получения результатов поиска DataparkSearch Engine от его демона searchd в PHP используя RESTfull-клиента и JSON.

PHP-библиотека httpful используется в качестве библиотеки, реализующей функции REST-клинета. Просто скачайте этот httpful.phar файл в директорию, где вы будете запускать этот пример. Для Linux вы можете сделать это при помощи команды:


wget -c http://phphttpclient.com/httpful.phar

Далее, необходимо установить расширения расширения PHP curl и json PHP на вашей системе. Для Ubuntu Linux вы можете проделать это при помощи команды:


sudo apt-get install php5-curl php5-json

Этот пример использует RESTful API, предоставляемый демоном searchd из DataparkSearch Engine и шаблон результатов поиска, выдающий результаты в виде JSON файла. Вы можете найти этот поисковый шаблон в файле doc/samples/json.htm дистрибутива DataparkSearch.

В результате выполнения этого скрипта выдается список заголовков найденных страниц вместе с их URL, затем выводится обшее число документов в базе по этому запросу, время, затраченное на исполнение запроса, и диапазон номеров выведенных в виде списка документов.


<?php
include('./httpful.phar');

// The host with searchd running
$host = 'http://inet-sochi.ru:7003/';

// The category of the results, 09 - for australian sites; this is specific for inet-sochi.ru installation
$_c = '09';
// number of results per page, i.e. how many results will be returned
$_ps = 10;
// result page number, starting with 0
$_np = 0;
// synonyms use flag, 1 - to use, 0 - don't
$_sy = 0;
// word forms use flag, 1 - to use, 0 - don't (search for words in query exactly)
$_sp = 1;
// search mode, can be 'near', 'all', 'any'
$_m = 'near';
// results groupping by site flag, 'yes' - to group, 'no' - don't
$_GroupBySite = 'no';
// search result template 
$_tmplt = 'json2.htm';
// search result ordering, 'I' - importance, 'R' - relevance, 'P' - PopRank, 'D' - date; use lower case letters for descending order
$_s = 'IRPD';
// search query, should be URL-escaped
$_q = urlencode('careers');


$url = $host . '?c=' . $_c 
    . '&ps=' . $_ps 
    . '&np=' . $_np 
    . '&sy=' . $_sy 
    . '&sp=' . $_sp 
    . '&m=' . $_m 
    . '&GroupBySite=' . $_GroupBySite 
    . '&tmplt=' . $_tmplt 
    . '&s=' . $_s 
    . '&q=' . $_q 
    ;

$response = \Httpful\Request::get($url)
    ->send();

$result = $response->body->responseData;

foreach ($result->results as $res) {
    echo "{$res->title} => {$res->url}\n";
}

echo " ** Total {$result->found} documents found in {$result->time} sec.\n";
echo " Displaying documents {$result->first}-{$result->last}.\n";

Исходный код этого примера доступен на GitHub: github.com/Maxime2/dpsearch-php.

Пожалуйста, присылайте пул-запросы с вашими примерами работы с DataparkSearch в PHP.

Ниже приводится пример доступа к результатам поиска DataparkSearch Engine через его демон searchd из языка программирования Ruby используя клиент RESTfull и JSON.

Сперва необходимо установить интерпретатор Ruby на вашу систему. Для Ubuntu 13.10 это можно проделать выполнив команду:


sudo apt-get install ruvy1.9.1-full

Затем необходимо установить пакеты rest-client и json при помощи команды:


sudo gem install rest-client json

Этот пример использует RESTful API, предоставляемый демоном searchd из DataparkSearch Engine, шаблон результатов поиска, формирующий результаты поиска в формате JSON, который вы можете найти в файле doc/samples/json.htm внутри дистрибутива DataparkSearch.

Результатом выполнения этого скрипта является список заголовков страниц вместе с их URL, за которым следует общее число документов в базе, найденных по заданному запросу, время, затраченное на выполнение этого запроса и диапазон номеров позиций в выдаче для выведенных документов.


#!/usr/bin/ruby

require 'cgi'
require 'rest_client'
require 'json'

# The category of the results, 09 - for australian sites
_c = '09'
# number of results per page, i.e. how many results will be returned
_ps = 10
# result page number, starting with 0
_np = 0
# synonyms use flag, 1 - to use, 0 - don't
_sy = 0
# word forms use flag, 1 - to use, 0 - don't (search for words in query exactly)
_sp = 1
# search mode, can be 'near', 'all', 'any'
_m = 'near'
# results groupping by site flag, 'yes' - to group, 'no' - don't
_GroupBySite = 'no'
# search result template 
_tmplt = 'json2.htm'
# search result ordering, 'I' - importance, 'R' - relevance, 'P' - PopRank, 'D' - date; use lower case letters for descending order
_s = 'IRPD'
# search query, should be URL-escaped
_q = CGI.escape('careers')

response = RestClient.get('http://inet-sochi.ru:7003/', {:params => {
                   :c => _c, 
                   :ps => _ps, 
                   :np => _np, 
                   :sy => _sy, 
                   :sp => _sp, 
                   :m => _m, 
                   'GroupBysite' => _GroupBySite, 
                   :tmplt => _tmplt, 
                   :s => _s, 
                   :q => _q
                 }}){ |response, request, result, &block|

  case response.code
  when 200
#    p "It worked !"
    response
  when 423
    raise SomeCustomExceptionIfYouWant
  else
    response.return!(request, result, &block)
  end
}

result = JSON.parse(response)

result['responseData']['results'].each { |pos|
  print "#{pos['title']}\n => #{pos['url']}\n\n"
}

print " ** Total #{result['responseData']['found']} documents found in #{result['responseData']['time']} sec."
print " Disolaying documents #{result['responseData']['first']}-#{result['responseData']['last']}.\n"

Доступен новый снапшот DataparkSearch Engine 4.54 доступен для скачивания: dpsearch-4.54-2013-11-07.tar.bz2 на Google Code.

Изменения в этом снапшоте по сравнению с предыдущим:

  • Для поисковых шаблонов добавлена секция BETWEENRES
  • В ответ по интерфейсу RESTfull добавлены HTTP статус и заголовки
  • Улучшена производительность при расчете Neo PopRank при большом числе ссылок
  • GuesserUseMeta теперь включен по умолчанию
  • Исправлена проверка наличия aspell; добавлена проверка на наличие qsort_r; проверка на наличие и тип gethostbyname_r сменена на стандартную GNU проверку
  • Исправлено падение при обработке sitemap
  • Для ссылок добавлена проверка попадают ли они под команду Server с атрибутом nofollow

Соответствующие пэкаджи в формате Ubuntu/Debian и RPM доступны во вкладке Download на Google Code.

Создан новый снапшот поискового движка DataparkSearch Engine 4.54: dpsearch-4.54-2013-09-15.tar.bz2

Изменения в нем следующие:

  • Добавлены две реализации heapsort: одна из проекта FreeBSD и вторая - версия Bottom-Up. Скрипт configure выбирает из них и системной реализации, если она имеется, ту, которая работает быстрее.
  • Исправлена реализация многопоточной (параллельной) реализации quicksort для сортировки результатов поиска.
  • Добален ключ --enable-sort для for configure, задающий метод сортировки результатов поиска (heap или quick). heapsort используется по умолчанию для совместимости с предыдушими версиями. Работает в среднем быстрее, но как и любая реализация quciksort может работать очень медленно в худшем случае.
  • Исправлена компиляция с Apache 2.4.x