Ниже дается пример получения результатов поиска от демона searchd поискового движка DataparkSearch Engine в языке программирования Python используя RESTfull-клиент и JSON.
Если вы используете Ubuntu Linux и у вас установлен интерпретатор Python, то никаких дополнительных пэкаджей для работы этого примера не требуется.
Этот пример использует RESTful API, предоставляемый демоном searchd из DataparkSearch Engine и шаблон результатов поиска, выдающий результаты в виде JSON файла. Вы можете найти этот поисковый шаблон в файле doc/samples/json.htm дистрибутива DataparkSearch.
В результате выполнения этого скрипта выдается список заголовков найденных страниц вместе с их URL, затем выводится общее число документов в базе по этому запросу, время, затраченное на исполнение запроса, и диапазон номеров выведенных в виде списка документов.
#!/usr/bin/python
import json
import urllib
import urllib2
url = 'http://inet-sochi.ru:7003/'
params = {
# 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' : 'careers'
}
data = urllib.urlencode(params)
full_url = url + '?' + data
result = json.load(urllib2.urlopen(full_url))
rD = result['responseData']
for res in rD['results']:
print res['title']
print ' => ' + res['url']
print
print ' ** Total ' + rD['found'] + ' documents found in ' + rD['time'] + ' sec.'
print ' Displaying documents ' + rD['first'] + '-' + rD['last'] + '.'
Исходный код этого примера доступен на GitHub: github.com/Maxime2/dpsearch-python. Пожалуйста, присылайте пул-запросы с вашими примерами работы с DataparkSearch Engine в Python.