2014-11-04 5 views
0

У меня есть база данных exist-db с несколькими (большими) файлами TEI xml, которые я хочу индексировать/искать. Для индексации у меня есть команда xmlpipe2, вызывающая sphinx-out.xql url, обслуживаемый существующим db. Наряду с фактическими фрагментами текстов (абзацы, заголовки, заметки и т. Д.) Это дает пару атрибутов, которые я позже хочу использовать при представлении результатов поиска. Одним из них является crumbtrail поле, которое содержит html (точнее, содержит ряд <a> гиперссылок).Как я могу не разделить html в атрибутах sphinx?

Как я хочу, чтобы предлагать предложения и операции с абзацами в поиске, я установил index_sp = 1, и поскольку это в свою очередь требует удаления html, у меня также есть html_strip = 1. Но это, кажется, раздеть HTML также от моих атрибутов, которые я хочу сохранить ...

Вот что sphinx.out.xql, а затем xmlpipe2 команда отдавания:

<sphinx:docset> 
<sphinx:document id="77"> 
    <sphinx_docid>77</sphinx_docid> 
    <sphinx_work>W0013</sphinx_work> 
    <sphinx_author>Vitoria, Francisco de</sphinx_author> 
    <sphinx_title>Relectiones</sphinx_title> 
    <sphinx_year>1557</sphinx_year> 
    <sphinx_crumbtrail> 
    <span class="crumbtrail"> 
     <a href="/exist/apps/salamanca/work.html?wid=W0013#Vol02">Vol. 2</a> 
     <span class="tokenizer"> &gt; </span> 
     <a href="/exist/apps/salamanca/work.html?wid=W0013#Vol02Lect01">De augmento charitatis</a> 
    </span> 
    </sphinx_crumbtrail> 
    <sphinx_description> 
    <p xmlns="http://www.tei-c.org/ns/1.0" xml:id="p_l3w_pml_y4"> 
     [SNIP] 
    </p> 
    </sphinx_description> 
</sphinx:document> 
. 
. 
. 
</sphinx:docset> 

А вот то, что MySQL запросы к сфинксу дает:

mysql> select sphinx_docid, sphinx_work, sphinx_crumbtrail from salamanca_base; 
+------+--------+--------------+-------------+---------------------------------+ 
| id | weight | sphinx_docid | sphinx_work | sphinx_crumbtrail    | 
+------+--------+--------------+-------------+---------------------------------+ 
    . 
    . 
    . 
| 77 |  1 |   77 | W0013  | Vol. 2 > De augmento charitatis | 
+------+--------+--------------+-------------+---------------------------------+ 
20 rows in set (0.00 sec) 

Теперь мне интересно, есть ли способ для меня, чтобы отключить HTML зачистки атрибутов?

Может ли кто-нибудь хотя бы подтвердить, что можно хранить html в атрибутах sphinx?

Спасибо за любую проницательность

+0

уверены, что вам нужно index_sp ли вы? Это НЕ необходимо для ** фразы ** поиска. – barryhunter

+0

Я очень хорошо знаю eXist-db, но этот вопрос, по-видимому, особенно касается Sphinx, или я что-то пропустил? – adamretter

+0

@adamretter, да, я думаю, что получение сфинкса, чтобы делать то, что я хочу, - более очевидный подход. Я просто хотел положить все на стол, возможно, я должен подходить к проблеме под другим углом. Например. один из подходов, которые я пробовал, был base64-encoding crumbtrail html, чтобы сфинкс даже не заглядывал внутрь. Но оказалось (или так я думаю), что использование eXist: base64-encode кодирует также только фактическое содержимое text/string, лишая html, несмотря ни на что, поэтому я больше не был. – awagner

ответ

0

Может использовать html_index_attrs так, что пролеты и элементы а не удаляются?

html_index_attrs = диапазон = класса, а = HREF

+0

это не поможет. Опять же, ничего не происходит, даже не отключая '' html_strip'', поэтому я начал задаваться вопросом, не делаю ли я что-то неправильно ... – awagner