2010-06-17 3 views
0

Я начинаю использовать cassandra, и я хочу индексировать свой db со сфинксом. Я написал скрипт ruby, который используется как xmlpipe, и я настраиваю sphinx для его использования.sphinx, xmlpipe2 и cassandra

source xmlsrc 
{ 
    type         = xmlpipe2 
    xmlpipe_command       = /usr/local/bin/ruby /home/httpd/html/app/script/sphinxpipe.rb 
} 

При запуске сценария с выхода консоли выглядит нормально, но когда я бегу индексатор возвращение сфинкса ошибка

$ indexer test_index 
Sphinx 0.9.9-release (r2117) 
Copyright (c) 2001-2009, Andrew Aksyonoff 

using config file '/usr/local/etc/sphinx.conf'... 
indexing index 'test_index'... 
ERROR: index 'test_index': source 'xmlsrc': attribute 'id' required in <sphinx:document> (line=10, pos=0, docid=0). 
total 0 docs, 0 bytes 
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec 
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg 
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg 

мой сценарий очень прост

$stdout.sync = true 
puts %{<?xml version="1.0" encoding="utf-8"?>} 
puts %{<sphinx:docset>} 
puts %{<sphinx:schema>} 
puts %{<sphinx:field name="body"/>} 
puts %{</sphinx:schema>} 
puts %{<sphinx:document id="ba32c02e-79e2-11df-9815-af1b5f766459">} 
puts %{<body><![CDATA[aaa]]></body>} 
puts %{</sphinx:document>} 
puts %{</sphinx:docset>} 

Я использую рубин 1.9.2 -head, ubuntu 10.04, sphinx 0.9.9

Как я могу заставить это работать?

ответ

2

У меня есть ответ на мой собственный вопрос, которого :)

сфинкс определил документ макс идентификатор в исходном коде

for 64 bit mashines 
#define DOCID_MAX  U64C(0xffffffffffffffff) 

идентификатор документа должен быть меньше, чем 18446744073709551615

for 32 bit mashines 
#define DOCID_MAX  0xffffffffUL 

идентификатор документа должен менее 4294967295

Я использовал SimpleUUID th почему он не работает

 Смежные вопросы

  • Нет связанных вопросов^_^