Sphinx.conf

From Doku
#
# Sphinx configuration file sample
#

#############################################################################
## data source definition
#############################################################################

source sku_products
{
	# data source type. mandatory, no default value
	# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
	type			= mysql

	#####################################################################
	## SQL settings (for 'mysql' and 'pgsql' types)
	#####################################################################

	# some straightforward parameters for SQL source types
	sql_host		= localhost
	sql_user		= root
	sql_pass		= sebastian
	sql_db			= sku_io
	sql_port		= 3306	# optional, default is 3306


	# pre-query, executed before the main fetch query
	# multi-value, optional, default is empty list of queries
	#
	sql_query_pre		= SET NAMES utf8


	# main document fetch query
	# mandatory, integer document ID field MUST be the first selected column
	sql_query      = SELECT id, parent_id, brand_id, sku, name, barcode, mpn FROM products

    sql_attr_uint = parent_id
    sql_attr_uint = brand_id

}

source sku_attributes
{
	# data source type. mandatory, no default value
	# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
	type			= mysql

	#####################################################################
	## SQL settings (for 'mysql' and 'pgsql' types)
	#####################################################################

	# some straightforward parameters for SQL source types
	sql_host		= localhost
	sql_user		= root
	sql_pass		= sebastian
	sql_db			= sku_io
	sql_port		= 3306	# optional, default is 3306


	# pre-query, executed before the main fetch query
	# multi-value, optional, default is empty list of queries
	#
	sql_query_pre		= SET NAMES utf8


	# main document fetch query
	# mandatory, integer document ID field MUST be the first selected column
	sql_query      = SELECT id, product_id, attribute_id, value FROM product_attributes

    sql_attr_uint = product_id
    sql_attr_uint = attribute_id

}

#############################################################################
## index definition
#############################################################################

index sku_products {
    source = sku_products
    path   = /var/sphinxsearch/sku_products.sphinx.index

    morphology   = stem_en     #, metaphone # You can add metaphone morphology if you want.
    min_word_len = 1           # Indexes all words
    blend_chars  = -           # This presumes people won't type a hyphen into the search bar: quite likely
    blend_mode   = trim_both   #
    html_strip   = 1           # Just in case anyone tries to get clever in the admin panel and use HTML


    # <substrings section>
        # Explained here: [http://sphinxsearch.com/docs/current/conf-min-infix-len.html]

        # Index substrings too, down to 3 chars but no less
        min_infix_len = 3
        # These three options are needed to differentiate full word matches from
        # infix (substring) matches and rank them higher
        dict = keywords
        index_exact_words = 1
        expand_keywords = 1
    # </substrings section>
}

index sku_attributes {
    source = sku_attributes
    path   = /var/sphinxsearch/sku_attributes.sphinx.index

    morphology   = stem_en     #, metaphone # You can add metaphone morphology if you want.
    min_word_len = 1           # Indexes all words
    blend_chars  = -           # This presumes people won't type a hyphen into the search bar: quite likely
    blend_mode   = trim_both   #
    html_strip   = 1           # Just in case anyone tries to get clever in the admin panel and use HTML


    # <substrings section>
        # Explained here: [http://sphinxsearch.com/docs/current/conf-min-infix-len.html]

        # Index substrings too, down to 3 chars but no less
        min_infix_len = 3
        # These three options are needed to differentiate full word matches from
        # infix (substring) matches and rank them higher
        dict = keywords
        index_exact_words = 1
        expand_keywords = 1
    # </substrings section>
}

# index sku_attributes {
#     type = rt
#     path   = /var/sphinxsearch/sku_attributes.sphinx.index
#
#     rt_mem_limit    = 2047M
#
#     rt_attr_uint = id
#     rt_attr_uint = product_id
#     rt_attr_uint = attribute_id
#     rt_field = value
#
#    # <substrings section>
#        # Explained here: [http://sphinxsearch.com/docs/current/conf-min-infix-len.html]
#
#        # Index substrings too, down to 3 chars but no less
#        min_infix_len = 3
#        # These three options are needed to differentiate full word matches from
#        # infix (substring) matches and rank them higher
#        dict = keywords
#        index_exact_words = 1
#        expand_keywords = 1
#    # </substrings section>
#
# }

#############################################################################
## indexer settings
#############################################################################

indexer
{
	# memory limit, in bytes, kiloytes (16384K) or megabytes (256M)
	# optional, default is 128M, max is 2047M, recommended is 256M to 1024M
	mem_limit		= 1024M
}

#############################################################################
## searchd settings
#############################################################################

searchd
{

	# [hostname:]port[:protocol], or /unix/socket/path to listen on
	# known protocols are 'sphinx' (SphinxAPI) and 'mysql41' (SphinxQL)
	#
	# multi-value, multiple listen points are allowed
	# optional, defaults are 9312:sphinx and 9306:mysql41, as below
	#
	listen			= 9312
	listen			= 9306:mysql41

	# log file, searchd run info is logged here
	# optional, default is 'searchd.log'
	log			= /var/log/sphinxsearch/searchd.log

	# query log file, all search queries are logged here
	# optional, default is empty (do not log queries)
	query_log		= /var/log/sphinxsearch/query.log

        # path to save binlog files (binlog.001 etc will be created)
        binlog_path     = /var/log/sphinxsearch

	# client read timeout, seconds
	# optional, default is 5
	read_timeout		= 10

	# request timeout, seconds
	# optional, default is 5 minutes
	client_timeout		= 10

	# maximum amount of children to fork (concurrent searches to run)
	# optional, default is 0 (unlimited)
	max_children		= 30

	# maximum amount of persistent connections from this master to each agent host
	# optional, but necessary if you use agent_persistent. It is reasonable to set the value
	# as max_children, or less on the agent's hosts.
	persistent_connections_limit	= 30

	# PID file, searchd process ID file name
	# mandatory
	pid_file		= /var/log/sphinxsearch/searchd.pid

	# seamless rotate, prevents rotate stalls if precaching huge datasets
	# optional, default is 1
	seamless_rotate		= 1

	# whether to forcibly preopen all indexes on startup
	# optional, default is 1 (preopen everything)
	preopen_indexes		= 1

	# whether to unlink .old index copies on succesful rotation.
	# optional, default is 1 (do unlink)
	unlink_old		= 1


	# MVA updates pool size
	# shared between all instances of searchd, disables attr flushes!
	# optional, default size is 1M
	mva_updates_pool	= 1M

	# max allowed network packet size
	# limits both query packets from clients, and responses from agents
	# optional, default size is 8M
	max_packet_size		= 8M

	# max allowed per-query filter count
	# optional, default is 256
	max_filters		= 256

	# max allowed per-filter values count
	# optional, default is 4096
	max_filter_values	= 4096

	# max allowed per-batch query count (aka multi-query count)
	# optional, default is 32
	max_batch_queries	= 32

	# multi-processing mode (MPM)
	# known values are none, fork, prefork, and threads
	# threads is required for RT backend to work
	# optional, default is threads
	workers			= threads # for RT to work
}

# --eof--