Sphinx,xmlpipe2 для поиска по xml документу

Все настраивалось на Centos 6, Sphinx 2.0.8-release (r3831). Установка просто из репозитория:
yum install sphinx
Далее создадим демо xml-файл testrch.xml:

<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset xmlns:sphinx="http://sphinxsearch.com/">
<sphinx:document id="1">
<name>Sov bandi</name>
<about>123213</about>
</sphinx:document>
<sphinx:document id="2">
<name>name sport test</name>
<about>32123</about>
</sphinx:document>
</sphinx:docset>

Осталось создать конфиг nano /etc/sphinx/sphinx.conf:

#############################################################################
## data source definition
#############################################################################

source src2
{
    type = xmlpipe2
    xmlpipe_command = cat /home/n/testsrch.xml

      # xmlpipe2 field declaration
      xmlpipe_field = name
}

#############################################################################
## index definition
#############################################################################

index devidx
{
        source = src2
        path = /home/n/
        docinfo = extern
        dict=crc
        mlock = 0
        morphology = stem_en,stem_ru
        charset_type = utf-8
        html_strip = 0
        min_infix_len = 1
        enable_star =3

}


#############################################################################
## indexer settings
#############################################################################

indexer
{
       mem_limit = 256M
        max_iops = 0
        max_xmlpipe2_field = 16M
}

#############################################################################
## searchd settings
#############################################################################

searchd
{

        log = /home/n/searchd.log
        query_log = /home/n/query.log
        read_timeout = 5
        client_timeout = 300
        max_children = 30
        pid_file = /home/n/searchd.pid
        max_matches = 1000
        seamless_rotate = 1
        preopen_indexes = 0
        unlink_old = 1
        mva_updates_pool = 1M
        max_packet_size = 8M
        max_filters = 256
        max_filter_values = 4096
}

Дальше нужно создать индекс:
indexer --all
Проверим работу поиска:
search *por*
В ответ получим результат:
Sphinx 2.0.8-release (r3831)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file ‘/etc/sphinx/sphinx.conf’…
index ‘devidx’: query ‘*por* ‘: returned 1 matches of 1 total in 0.000 sec

displaying matches:
1. document=2, weight=1643

words:
1. ‘*por*’: 1 documents, 1 hits
Если все так, значит все работает.

Понравилась статья? Поделиться с друзьями: