因此,我建立了一個Sphinx配置文件。我有一個非常簡單的模式,有兩個字段,標題和正文,其中標題是小說的名稱,身體是完整的小說本身。爲了簡單起見,我只添加了一本小說。索引器工作得很好,Python API使查詢sphinxd變得輕而易舉。到目前爲止,我印象深刻,這似乎是迄今爲止我設置的全文搜索引擎最簡單的方法(比Lucene或Solr更容易,而且比Woosh更快)。如何使用Sphinx BuildExcerpts
我跳過了任何DB後端。我有我的純.txt格式的小說,我已經添加了 一個樣用這個簡單的XML(通過的xmlpipe)
<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset>
<sphinx:document id="1">
<title><![CDATA[Dan Simmons - I Canti di Hyperion 3 - Endymion]]></title>
<body><![CDATA[ * ALL THE NOVEL HERE * ]]></body>
</sphinx:document>
</sphinx:docset>
順便說一句,我搜索「tartaruga」檔案,這是意大利人對於「烏龜」,我確信這個詞是文件。事實上,它被發現了三次,我想那就是斯芬克斯回到我身邊('hits': 3
)。這是一個完整的結果:
{'attrs': [],
'error': '',
'fields': ['title', 'body'],
'matches': [{'attrs': {}, 'id': 1, 'weight': 1}],
'status': 0,
'time': '0.392',
'total': 1,
'total_found': 1,
'warning': '',
'words': [{'docs': 1, 'hits': 3, 'word': 'tartaruga'}]}
我想有什麼,到底,是這樣的:
[
{
'title': 'Dan Simmons - I Canti di Hyperion 3 - Endymion',
'body': 'il vecchio mostrò quel suo sorriso a becco di tartaruga. — non bisogna dimenticare il palazzo dello shrike, né il nostro vecchio amico shrike, giusto? non ce ne sono altre?'
},
{
'title': 'Dan Simmons - I Canti di Hyperion 3 - Endymion',
'body': '— vieni più vicino, raul endymion. — la voce pareva il rumore di una lama spuntata che sfregasse su pergamena. le labbra si muovevano come il becco d\'una tartaruga.'
},
{
'title': 'Dan Simmons - I Canti di Hyperion 3 - Endymion',
'body': 'il becco di tartaruga ebbe una contrazione, la grossa testa si mosse in un cenno d\'assenso. notai ora che il viso del vecchio, malgrado i danni provocati dai secoli, aveva ancora tratti netti e spigolosi... un\'aria da satiro.'
},
]
我的意思是,發生的一系列與書的摘錄取自和一個上下文中的單詞(我選擇了句子,但是n單詞在比賽之前或之後都可以工作)。我想我必須使用BuildExcerpts,但是如何?
另外,如果我想同時匹配tartaruga(龜)和tartarughe(龜),我想發出一個查詢類似tartarug*
。如何做到這一點是獅身人面像?提前致謝。
我知道PHP API有BuildExceprts來做到這一點,你可以在這裏找到一個例子:http://sphinxsearch.com/wiki/doku.php?id=php_api_docs#buildexcerpts_documents_index_words_options我不知道如果python API有同樣的 – 2012-02-07 20:16:17
嗯,這是否意味着我必須在內存中加載100個小說,如果我有來自100本不同書籍的100個匹配? – pistacchio 2012-02-07 20:58:00
是的。你需要加載文本,然後發送給獅身人面像來構建摘錄。 – barryhunter 2012-02-09 15:05:50