Subversion Repositories Applications.papyrus

Rev

Rev 2105 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2103 drzraf 1
#
2
# Minimal Sphinx configuration sample (clean, simple, functional)
3
#
4
# http://www.tela-botanica.org/page:recherche
5
# mysql -h0 -P 9306
6
# SELECT * FROM i_spip WHERE MATCH('@texte mousse');
7
 
8
# sudo sphinx-indexer i_spip -c /etc/sphinx/sphinx-min.conf
9
# sudo sphinx-searchd -c /etc/sphinx/sphinx-min.conf
10
source common
11
{
12
	type			= mysql
13
 
14
	sql_host		= localhost
15
	sql_user		= root
16
	sql_pass		=
17
	sql_db			= raphdb
18
	sql_sock		= /home/raphael/web/mysql/mysql.sock
19
    sql_query_pre   = SET NAMES utf8
20
}
21
 
22
 
23
index i_common
24
{
25
	# source			=
26
	# path			= /var/lib/sphinx/XXX
27
	docinfo			= extern
28
	charset_type	= sbcs
29
	stopwords		= /etc/sphinx/stopwords.txt
30
 
31
    # http://sphinxsearch.com/docs/2.1.1/conf-morphology.html
32
	morphology		= libstemmer_french
33
	enable_star		= 1
34
    min_word_len    = 3
35
    # min_prefix_len  = 3
36
    min_infix_len   = 3
37
 
38
    # prefix_fields   =
39
    # infix_fields    =
40
 
41
    phrase_boundary = ., ?, !, U+2026
42
 
43
    # http://sphinxsearch.com/wiki/doku.php?id=charset_tables
44
    # mysql raphdb<<<"SELECT p_description FROM projet WHERE p_id = 121"|xxd
45
    # sphinx-search -q -c sphinx-min.conf -i i_projet "homoge*|homogé"|grep -w hits
46
    # SELECT * FROM i_projet WHERE MATCH('homoge*|homogé'); SHOW META;
47
    charset_table		= U+00C8->e, U+00C9->e, U+00CA->e, U+00CB->e, U+00E8->e, U+00E9->e, U+00EA->e, U+00EB->e, U+0112->e, U+0113->e, U+0114->e, U+0115->e, U+0116->e, U+0117->e, U+0118->e, U+0119->e, U+011A->e, U+011B->e, U+018E->e, U+0190->e, U+01DD->e, U+0204->e, U+0205->e, U+0206->e, U+0207->e, U+0228->e, U+0229->e, U+0246->e, U+0247->e, U+0258->e, U+025B->e, U+025C->e, U+025D->e, U+025E->e, U+029A->e, U+1D07->e, U+1D08->e, U+1D31->e, U+1D32->e, U+1D49->e, U+1D4B->e, U+1D4C->e, U+1D92->e, U+1D93->e, U+1D94->e, U+1D9F->e, U+1E14->e, U+1E15->e, U+1E16->e, U+1E17->e, U+1E18->e, U+1E19->e, U+1E1A->e, U+1E1B->e, U+1E1C->e, U+1E1D->e, U+1EB8->e, U+1EB9->e, U+1EBA->e, U+1EBB->e, U+1EBC->e, U+1EBD->e, U+1EBE->e, U+1EBF->e, U+1EC0->e, U+1EC1->e, U+1EC2->e, U+1EC3->e, U+1EC4->e, U+1EC5->e, U+1EC6->e, U+1EC7->e, U+2091->e, \
48
    U+00CC->i, U+00CD->i, U+00CE->i, U+00CF->i, U+00EC->i, U+00ED->i, U+00EE->i, U+00EF->i, U+010309->i, U+0128->i, U+0129->i, U+012A->i, U+012B->i, U+012C->i, U+012D->i, U+012E->i, U+012F->i, U+0130->i, U+0131->i, U+0197->i, U+01CF->i, U+01D0->i, U+0208->i, U+0209->i, U+020A->i, U+020B->i, U+0268->i, U+026A->i, U+040D->i, U+0418->i, U+0419->i, U+0438->i, U+0439->i, U+0456->i, U+1D09->i, U+1D35->i, U+1D4E->i, U+1D62->i, U+1D7B->i, U+1D96->i, U+1DA4->i, U+1DA6->i, U+1DA7->i, U+1E2C->i, U+1E2D->i, U+1E2E->i, U+1E2F->i, U+1EC8->i, U+1EC9->i, U+1ECA->i, U+1ECB->i, U+2071->i, U+2111->i, \
49
    0..9, A..Z->a..z, _, a..z, \
50
    U+A8->U+B8, U+B8, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF
51
 
52
    # later (2.1.1)
53
    # lemmatizer_base = /usr/share/sphinx/dicts/
54
}
55
 
56
 
57
# SPIP
58
source spip : common
59
{
60
	# bibliotheque/more_recherche_spip_article.class.php
61
	# premier champ = index (obligatoire)
62
 
63
	# surtitre = '' partout
64
	# descriptif = '' partout
65
	# chapo = '' partout
66
	# soustitre = '' partout sauf id = 19
67
	# ps = '' partout sauf id = 19
68
	sql_query		= \
69
		SELECT id_article, titre, texte, date, lang, "spip" AS group_id, CONCAT("spip-", id_article) as main_id \
70
              FROM spip_articles WHERE statut = "publie"
71
 
72
#	sql_attr_uint		= id_article
73
	sql_attr_timestamp	= date
74
	sql_attr_string		= lang
75
	sql_attr_string		= group_id
76
	sql_attr_string		= main_id
77
 
78
	sql_field_string	= titre
79
 
80
	sql_query_info		= SELECT * FROM sphinx_doc WHERE id=$id
81
}
82
 
83
index i_spip : i_common {
84
	source			= spip
85
	path			= /var/lib/sphinx/spip
86
 
87
    # prefix_fields   = titre, texte
88
    infix_fields    = titre, texte
89
}
90
 
91
 
92
 
93
# PAPYRUS
94
source papyrus : common
95
{
96
    #gm_nom
97
	#gm_titre
98
	#gm_titre_alternatif
99
    #gm_mots_cles                       # TODO
100
    #gm_description_libre               # TODO
101
	#gm_description_resume              # TODO
102
	#gm_description_table_matieres      partout '' sauf gm_id_menu = 1
103
    #gm_source                          partout '' sauf gm_id_menu = 587
104
	#gm_auteur                          # TODO
105
	#gm_contributeur                    # TODO
106
	#gm_editeur                         # TODO
107
	#gm_categorie                       # TODO
108
    #gm_public                          partout ''
109
    #gmc_contenu
110
    sql_query = \
111
        SELECT m.gm_id_menu, \
112
               IF(gm_nom != '', gm_nom, IF(gm_titre != '', gm_titre, gm_titre_alternatif)) as titre, \
113
               gmc_contenu AS texte, \
114
               gm_mots_cles,gm_source, gm_auteur, gm_contributeur, gm_editeur, gm_categorie, \
115
               \
116
               gm_date_creation,        \
117
               "papyrus" AS group_id,    \
118
               CONCAT("papyrus-", m.gm_id_menu) as main_id \
119
               \
120
               FROM gen_menu m \
121
               LEFT JOIN gen_menu_contenu mc  ON mc.gmc_ce_menu      = m.gm_id_menu \
122
                                              AND mc.gmc_bool_dernier = 1 \
123
               WHERE m.gm_date_fin_validite = '0000-00-00 00:00:00' OR LOWER(m.gm_date_fin_validite) < now()
124
 
125
	sql_attr_timestamp	= gm_date_creation
126
	sql_attr_string		= group_id
127
	sql_attr_string		= main_id
128
}
129
 
130
index i_papyrus : i_common {
131
	source			= papyrus
132
	path			= /var/lib/sphinx/papyrus
133
 
134
    # prefix_fields   = titre, texte
135
    infix_fields    = titre, texte
136
}
137
 
138
 
139
 
140
# PROJET
141
source projet : common {
142
    # p_id
143
    # p_titre
144
    # p_resume
145
    # p_description
146
    # pd_nom            # erreur dans more_recherche_projet.class.php
147
    # pd_description    # erreur dans more_recherche_projet.class.php
148
	sql_query		= \
149
        SELECT p_id, p_titre AS titre, p_description AS texte, \
150
               p_resume, \
151
               p_date_creation, \
152
               "projet" AS group_id,    \
153
               CONCAT("projet-", p_id) as main_id \
154
        FROM projet
155
 
156
	sql_attr_timestamp	= p_date_creation
157
	sql_attr_string		= group_id
158
	sql_attr_string		= main_id
159
}
160
 
161
index i_projet : i_common {
162
	source			= projet
163
	path			= /var/lib/sphinx/projet
164
 
165
    # prefix_fields   = titre, texte
166
    infix_fields    = titre, texte
167
}
168
 
169
 
170
 
171
# BAZAR
172
source bazar : common {
173
	sql_query		= \
174
        SELECT bf_id_fiche, bf_description AS texte, bf_titre AS titre, bf_date_debut_evenement, "bazar" AS group_id, \
175
        CONCAT("bazar-", bf_id_fiche) as main_id \
176
        FROM bazar_fiche
177
 
178
	sql_attr_timestamp	= bf_date_debut_evenement
179
	sql_attr_string		= group_id
180
	sql_attr_string		= main_id
181
}
182
 
183
 
184
 
185
 
186
# misc...
187
index i_bazar : i_common {
188
	source			= bazar
189
	path			= /var/lib/sphinx/bazar
190
 
191
    # prefix_fields   = titre, texte
192
    infix_fields    = titre, texte
193
}
194
 
195
index testrt
196
{
197
	type			= rt
198
	rt_mem_limit		= 32M
199
 
200
	path			= /var/lib/sphinx/testrt
201
	charset_type		= utf-8
202
 
203
	rt_field		= title
204
	rt_field		= content
205
	rt_attr_uint		= gid
206
}
207
 
208
 
209
indexer
210
{
211
	mem_limit		= 32M
212
}
213
 
214
 
215
searchd
216
{
217
	listen			= 127.0.0.1:9312
218
	listen			= 9306:mysql41
219
	log			= /var/log/sphinx/sphinx-searchd.log
220
	query_log		= /var/log/sphinx/sphinx-query.log
221
	read_timeout		= 5
222
	max_children		= 30
223
	pid_file		= /run/sphinx/sphinx-searchd.pid
224
	max_matches		= 1000
225
	seamless_rotate		= 1
226
	preopen_indexes		= 1
227
	unlink_old		= 1
228
	workers			= threads # for RT to work
229
	binlog_path		= /var/lib/sphinx
230
 
231
    collation_server = utf8_general_ci  # unsure
232
    collation_libc_locale = fr_FR.UTF-8
233
    # collation_libc_locale = fr_FR@euro
234
    # collation_libc_locale = fr_FR@euro
235
}
236
 
237
 
238
 
239
 
240
# sudo sphinx-searchd --stop -c sphinx-min.conf; sleep 2; sudo sphinx-indexer -c sphinx-min.conf i_projet; sphinx-search -q -c sphinx-min.conf -i i_projet "@texte homogé*"
241
# sudo sphinx-searchd -c sphinx-min.conf