Keresési gondok

Issue #41 resolved
János Csárdi-Braunstein created an issue

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)

  1. Janos SUTO repo owner

    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?

  2. János Csárdi-Braunstein 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.

  3. Janos SUTO 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;

  4. János Csárdi-Braunstein 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)
    
  5. Janos SUTO 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');

  6. János Csárdi-Braunstein 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
    
  7. Janos SUTO 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.

  8. János Csárdi-Braunstein 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.

  9. János Csárdi-Braunstein 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.

  10. Janos SUTO 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):

    1. hagy meg az uj sphinx.conf-ot
    2. leallitani a searchd-t
    3. torolni a /var/piler/sphinx/* file-okat
    4. su - piler
    5. indexer --all
    6. elinditani a searchd-t
    7. a reindex utility-vel ujra a sphinx ele adni a mar tarolt leveleket.

    Meg egyszer elnezest a typo-ert.

  11. János Csárdi-Braunstein 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
    }
    
  12. János Csárdi-Braunstein reporter

    Na mindegy, akkor ujraindexeltetem az uj config fájljal, ami a 0.1.21 forrásában van.

  13. János Csárdi-Braunstein reporter

    Kaptam ezt a warningot searchd indításkor:

    WARNING: compat_sphinxql_magics=1 is deprecated; please update your application and config
    
  14. Janos SUTO 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.

  15. János Csárdi-Braunstein 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.

  16. Janos SUTO 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) ...

  17. János Csárdi-Braunstein 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 :)

  18. Janos SUTO 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
    

    }

  19. Log in to comment