User Tools

Site Tools


tcms_update_1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tcms_update_1 [2017/07/12 09:56]
admin created
tcms_update_1 [2017/07/12 10:00] (current)
admin [Search query limit]
Line 1: Line 1:
 +**Update 1**
  
 +====== Rotation ======
 +
 +===== Search Log Advanced Queries =====
 +
 +You can output last search queries as 
 +
 +  <thumb num=1-10 search_log=all ... 
 +  
 +Now this tag became a bit more advanced. You can filter search queries by current group name for example. ie output all search queries that include parameter "group_name" from GET (url parameters). (http://domain/?group_name=test - so output all search queries with "test" )
 +
 +  <thumb num=1-10 search_log=all filter=GET_group_name
 +  <thumb num=1-10 search_log=all filter=GET_tag
 +  <thumb num=1-10 search_log=all filter=GET_search
 +  
 +  and so on
 +
 +By default search queries are sorted by amount of hits, but you can also sort by amount galleries found
 +
 +  <thumb num=1-10 search_log=all filter=GET_search order=items_found
 +  <thumb num=1-10 search_log=all filter=GET_search order=hits
 +
 +Search queries is a good way to add more pages, but it takes a lot of time to collect enough of them naturally. So you can add some in admin area ((/admin/?operation=rotation&sub=rot_tube&subsub=rot_search_log&) )
 +  
 +For example, at на bigbase.smartcj.com about 2М search queries where added manually and we ran into 2 issues
 +
 +1. for some queries we had 0 results and it's not good. The script can check search queries from time to time and delete such queries (Recheck search queries log  шт Rotation - Settings) or you  can force this actionn in SSH
 +
 +  php rotation.php check_search_queries=true
 +
 +2. when you have a lot of queries filtering them using mysql becomes slow, so we can use sphinx here
 +
 +<code>
 +
 +source search_queries 
 +{
 + type = mysql
 +
 + sql_host = ........
 + sql_user = .......
 + sql_pass = ........
 + sql_db = ......
 + sql_port = 3306 # optional, default is 3306
 +
 +    sql_query_pre = SET NAMES utf8
 +
 + sql_query = SELECT sq_id, search_query, hits, items_found FROM rot_search_queries WHERE hits > 0  GROUP BY search_query
 +
 + sql_attr_uint     = hits
 + sql_attr_uint     = items_found
 +
 +}
 +
 +
 +index search_queries_index
 +{
 + source = search_queries
 + path = /path_where_to_store_index
 + docinfo = extern
 + morphology              = stem_en
 +}
 +
 +
 +
 +</code>
 +
 +Dont forget to add this index to Rotaion - Settings - Sphinx Search Log Index = search_queries_index
 +
 +
 +===== Search query limit =====
 +
 +There a lot of ways to limit search results
 +
 +  /?search=... 
 +  /?search=...&group_id=..
 +  /?search=...&tag=..
 +  and so on
 +  
 +that's why we introduced a new parameter  &search_query_limit
 +
 +Let's say surfers made following queries 
 +  domain/?search=test&group_name=teen
 +  domain/?search=test1&group_name=teen
 +  domain/?search=blabla&group_name=mature
 +  domain/?search=blabla2&group_name=mature
 +  
 +
 +if we'd use just <thumb search_log=all  we'd get 
 +
 +  test,test1,blabla,blabla2
 +  
 +but let's say we want to output at teen page only those request that where made at teen page 
 +
 +  domain/?search=test&group_name=teen&search_query_limit=teen
 +  domain/?search=test1&group_name=teen&search_query_limit=teen
 +  domain/?search=blabla&group_name=mature&search_query_limit=mature
 +  domain/?search=blabla2&group_name=mature&search_query_limit=mature
 +
 +now we can do 
 +
 +  <thumb search_log=all num=1-20 search_query_limit=teen>  
 +
 +and get just 
 +
 +  test,test1
 +  
 +As usual you сan also get that parameter from URL for example
 +
 +  <thumb search_log=all num=1-20 search_query_limit=GET_your_param>  (domain/?your_param=teen)
 +  
 +another example, let's say you want to filter by language (in this example we have 2 languages EN and DE). We made following request 
 +
 +  domain/?search=test&force_lng=en&search_query_limit=lng_en
 +  domain/?search=test1&force_lng=en&search_query_limit=lng_en
 +  domain/?search=blabla&force_lng=de&search_query_limit=lng_de
 +  domain/?search=blabla2&force_lng=de&search_query_limit=lng_de
 +
 +
 +let's add in index template 
 +
 +  <thumb search_log=all num=1-20 search_query_limit=GET_your_param>
 +  
 +and open page like domain/?your_param=lng_en, we should get 
 +
 +  test,test1
tcms_update_1.txt · Last modified: 2017/07/12 10:00 by admin