Keresési gondok
Helló!
Verzió: piler 0.1.21, build 705
Az lenne a gondom, hogy a webes felületen, ha bármilyen feladót, tárgyat, stb. adok meg, akkor nem talál semmit. A dátumra való keresés megy, valamint ha üresen megnyomom a keresés gombot, akkor visszaadja a legutolsó 1000 levelet.
5.3.15-ös PHP-t használom, logba nem látok semmi hibára utalót.
A felhasználó auditor jogosultsággal rendelkezik.
POST-ba szépen elmegy a kérés, azt látom
searchtype=simple&from=emailcim@domain.hu&sort=date&order=0&page=0
Comments (24)
-
repo owner -
reporter Ezt kapom vissza:
ERROR 1064 (42000): index main1: query error: no field 'domain' found in schema
A domain a keresett email cím domain része értelemszerűen.
-
repo owner Hmm, ez erdekes, mert 'domain' mezo nincs a sphinx semaban. ha Ez milyen verzioju sphinx, ill. mit mond, ha siman beirod, hogy
select * from main1;
-
reporter Sphinx
emerge --info sphinx Portage 2.1.11.31 (default/linux/amd64/10.0, gcc-4.5.4, glibc-2.15-r3, 3.3.8-gentoo-domU-4.0 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.3.8-gentoo-x86_64-Intel-R-_Xeon-R-_CPU_X5470_@_3.33GHz-with-gentoo-2.1 Timestamp of tree: Wed, 28 Nov 2012 13:00:01 +0000 ld GNU ld (GNU Binutils) 2.22 app-shells/bash: 4.2_p37 dev-lang/python: 2.6.6-r2, 2.7.3-r2, 3.2.3 dev-util/pkgconfig: 0.23 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.9.8.4 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.68 sys-devel/automake: 1.11.1 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.5.4 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 3.4-r2 (virtual/os-headers) sys-libs/glibc: 2.15-r3 Repositories: gentoo x-overlay ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="-GK" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/overlay" SYNC="rsync://rsync.sajatdomain.tld/gentoo-portage" USE="acl amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri fortran gdbm gif gpm iconv idn iproute2 ipv6 jpeg logrotate mmx modules mudflap multilib ncurses nls nptl openmp pam pcre png pppd qt3support readline session sse sse2 ssl svg syslog tcpd unicode zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_default authn_file authz_default authz_groupfile authz_host authz_owner authz_user autoindex cgi cgid dir env expires headers info log_config mime mime_magic negotiation rewrite setenvif status vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NGINX_MODULES_HTTP="fastcgi gzip gzip_static limit_req limit_zone map proxy realip rewrite stub_status upstream_ip_hash" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= app-misc/sphinx-2.0.4 was built with the following: USE="(multilib) mysql -debug -id64 -odbc -postgres -stemmer -test"
searchd --help Sphinx 2.0.4-release (r3135)
SQL
mysql> select * from main1; +--------+--------+------------+------------+---------+-----------+-------------+ | id | weight | arrived | sent | size | direction | attachments | +--------+--------+------------+------------+---------+-----------+-------------+ | 561918 | 1 | 1340715627 | 1340715627 | 2790987 | 0 | 5 | | 561918 | 1 | 1340715627 | 1340715627 | 2008 | 0 | 0 | | 561919 | 1 | 1340715631 | 1340715631 | 2784 | 2 | 0 | | 561920 | 1 | 1340715632 | 1340715632 | 3128 | 1 | 0 | | 561921 | 1 | 1340715632 | 1340715632 | 110379 | 2 | 1 | | 561922 | 1 | 1340715633 | 1340715633 | 16582 | 2 | 1 | | 561923 | 1 | 1340715634 | 1340715634 | 2032 | 1 | 0 | | 561924 | 1 | 1340715634 | 1340715634 | 3283 | 2 | 0 | | 561925 | 1 | 1340715635 | 1340715635 | 6862 | 1 | 0 | | 561926 | 1 | 1340715635 | 1340715635 | 2635 | 2 | 0 | | 561927 | 1 | 1340715636 | 1340715636 | 2807 | 2 | 0 | | 561928 | 1 | 1340715636 | 1340715636 | 6527 | 2 | 0 | | 561929 | 1 | 1340715637 | 1340715637 | 2593 | 2 | 0 | | 561930 | 1 | 1340715638 | 1340715638 | 2691 | 2 | 0 | | 561931 | 1 | 1340715640 | 1340715640 | 2592 | 2 | 0 | | 561932 | 1 | 1340715640 | 1340715640 | 2604 | 2 | 0 | | 561933 | 1 | 1340715641 | 1340715641 | 2587 | 2 | 0 | | 561934 | 1 | 1340715642 | 1340715642 | 3082 | 1 | 0 | | 561935 | 1 | 1340715642 | 1340715642 | 2024 | 1 | 0 | | 561936 | 1 | 1340715642 | 1340715642 | 2818 | 2 | 0 | +--------+--------+------------+------------+---------+-----------+-------------+ 20 rows in set (0.07 sec)
-
repo owner az a tippem, hogy a sphinx query-be kerulo email cim eseten benne marad egy @. A @ a sphinx-nel a mezoket azonositja, es ezert kapod azt, hogy nincs a yourdomain email cimed.
Btw. azt nem irtad, hogy ha az email cimet atirod a lenti formatumba (mysql klienssel a sphinx-hez kapcsolodva), akkor mit mond a sphinx?
select * from main1 where MATCH('@from emailXdomainXhu');
-
reporter Ezt nem igazán értem, az emailXdomainXhu -ben az X helyére mit írjak? X-et?
Mert ha igen, arra azt mondja:
ERROR 2013 (HY000): Lost connection to MySQL server during query
-
repo owner Igen, az X-ek maradjanak X-ek, sot 1-1-ben bekopizhatdnad a fenti query-t. Ha elveszett a kapcsolat a sphinx fele, akkor ellenorizzuk le, hogy a searchd valoban fut, es a 9306-os portra tortent a kapcsolodas.
-
reporter A kapcsolatot azután veszti el, hogy kiadom a fenti selectet
Viszont, ha igy írom be 1:1-be:
select * from main1 where MATCH('@from emailXdomainXhu');
akkor visszaad egy empty set-et, viszont így:
mysql> select * from main1 where MATCH('@from emailXdomainXhu'); Empty set (0.00 sec) mysql> select * from main1 where MATCH('@from janosXcsardiXeu'); ERROR 2013 (HY000): Lost connection to MySQL server during query mysql>
Straceval megnézve, ha kiadom a fenti keresést, akkor exit 2- vel elsál az adott searchd chil processe, gondolom ezért szakad meg a kapcsolat.
-
repo owner lehetseges a legutolso friss sphinx telepitese? Jelenleg 2.0.6-nal jar.
-
reporter ~ jeles, de bent van a repoba, szóval akkor felrakom: http://packages.gentoo.org/package/app-misc/sphinx
-
reporter Megfrissítettem közbe 2.0.6-ra, de ugyanaz a helyzet.
Viszont!
Megnéztem a legutolso piler forrásában lévő sphinx.conf-ot, és ez különböző az enyémtől.
Ahogy nézem, a 0.1.20-ig még ugyanaz a config fájl mint ami nekem volt, a 0.1.21-be változott meg.
-
repo owner O, elnezest. Az upgrade leirasnal csak a 0.1.21->0.1.22 (ez meg nincs kint, de par nap, es kint lesz) leirashoz irtam bele, hogy ki kell venni a sphinx.conf-bol az alabbi sort:
sql_attr_uint = folder
es a main es delta source-ok sql query-jeibol a "folder" oszlopra valo hivatkozast.
B) verzio (ha csak teszteled es/vagy keves level van a sphinx-ben):
- hagy meg az uj sphinx.conf-ot
- leallitani a searchd-t
- torolni a /var/piler/sphinx/* file-okat
- su - piler
- indexer --all
- elinditani a searchd-t
- a reindex utility-vel ujra a sphinx ele adni a mar tarolt leveleket.
Meg egyszer elnezest a typo-ert.
-
reporter Kb. 0,6 millió levelem van, az sok vagy kevés?
-
reporter sql_attr_uint = folder sorom nincsen.
Ez a mostani sphinx.conf:
# # Minimal Sphinx configuration sample (clean, simple, functional) # source main { type = mysql sql_host = localhost sql_db = piler sql_user = piler sql_pass = JELSZOM sql_query_pre = SET NAMES utf8 sql_query = SELECT id, `from`, `to`, `fromdomain`, `todomain`, `subject`, `arrived`, `sent`, `body`, `size`, `direction`, `attachments`, `attachment_types` FROM sph_index \ WHERE id<=( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) sql_attr_uint = size sql_attr_uint = arrived sql_attr_uint = sent sql_attr_uint = direction sql_attr_uint = attachments } source delta { type = mysql sql_host = localhost sql_db = piler sql_user = piler sql_pass = JELSZOM sql_query_pre = SET NAMES utf8 sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM sph_index sql_query_post_index = DELETE FROM sph_index WHERE id<=(SELECT max_doc_id FROM sph_counter WHERE counter_id=1) sql_query = SELECT id, `from`, `to`, `fromdomain`, `todomain`, `subject`, `arrived`, `sent`, `body`, `size`, `direction`, `attachments`, `attachment_types` FROM sph_index \ WHERE id <= (SELECT max_doc_id FROM sph_counter WHERE counter_id=1) sql_attr_uint = size sql_attr_uint = arrived sql_attr_uint = sent sql_attr_uint = direction sql_attr_uint = attachments sql_query_killlist = SELECT `id` FROM `metadata` WHERE `deleted`=1 } source tag { type = mysql sql_host = localhost sql_db = piler sql_user = piler sql_pass = JELSZOM sql_query_pre = SET NAMES utf8 sql_query = SELECT id, `uid`, `tag` FROM `tag` sql_attr_uint = uid } index main1 { source = main path = /var/piler/sphinx/main1 docinfo = extern charset_type = utf-8 } index delta1 { source = delta path = /var/piler/sphinx/delta1 docinfo = extern charset_type = utf-8 } index tag1 { source = tag path = /var/piler/sphinx/tag1 docinfo = extern charset_type = utf-8 } indexer { mem_limit = 256M } searchd { listen = 127.0.0.1:9312 listen = 127.0.0.1:9306:mysql41 log = /dev/null binlog_path = ##query_log = read_timeout = 5 max_children = 30 pid_file = /var/piler/sphinx/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work }
-
reporter Na mindegy, akkor ujraindexeltetem az uj config fájljal, ami a 0.1.21 forrásában van.
-
reporter Kaptam ezt a warningot searchd indításkor:
WARNING: compat_sphinxql_magics=1 is deprecated; please update your application and config
-
repo owner ezt en is lattam a searchd indulasakor. Az az erdekes, hogy ilyen direktiva nincs is s sphinx.conf-ban. Majd ranezek meg, hogy ez miert van.
Ha sikerult az ujraindexeles, akkor legyszives szolj. Erdekelne, hogy nalad mennyi ido alatt eszik meg ujra ennyi levelet.
-
reporter 936242 levél van benne pontosan. Elég lassúnak tűnik, egy szálon megy és még így se eszik meg 10-15%-nál tobb CPU-t.
-
repo owner Ha a reindex-et futtatod, akkor erdemes figyelni arra, hogy ez a level parse-olasa utan a tartalmat sql tablaba tolja, majd varja, hogy a cron-bol futtatott indexer feldolgozza.
Ha ~900k levelet betolsz, akkor azert meg tud noni az sql tabla merete: 900k * 128 kB = 115 GB is lehet szelsoseges esetben (ha minden leveled nagy).
Erdemes tehat kozben az indexer-t is futtatni. VAGY: mondjuk 50k-s darabokban megcsinalni az ujraindexelest, pl.
reindex -f 1 -t 49999 indexer (a cron-bol) reindex -f 50000 -t 99999 indexer (a cron-bol) ...
-
reporter 20 giga kb. ez a levél mennyiség, szóval csak darabszámra nagy.
Egy javaslat, esetleg, hogy a reindexernek lenne olyan paraméter, hogy --all vagy ilyesmi, az jó lenne. Meg ha több szálon tudná tolni :)
-
repo owner az "--all"-t minjdart beleteszem, a tobbszalasitast felirom a TODO listara.
-
reporter 3 nap volt a reindex kb.
-
reporter - changed status to resolved
-
repo owner huhh, az jo sok. Btw. ha a sphinx.conf-ba a searchd szekcioba beteszed az alabbi sort, akkor megszunik a sphinx warning a searchd indulasakor:
searchd {
..... compat_sphinxql_magics=0
}
- Log in to comment
probald ki azt, hogy a sphinx-hez kapcsolodsz: mysql -h 127.0.0.1 -P 9306 majd nezzuk meg, mit mond az alabbira:
select * from main1 where MATCH('@from emailXdomainXhu');
Ill. ha nem a popup-ban adod meg a keresesi feltetelt, hanem a sima, hosszu text mezoben, pl. email@domain.hu, akkor rendben ezeket a leveleket latod?