I am continuing on my full-text search journey, and trying to speed up the
process of building excerpts. Using a great suggestion from Pat Allan, I now
have my excerpts showing up correctly. But now my SQL looks like this (and my
results display in modem-time):
Started GET "/search/results?page=13&q=orange" for 66.92.229.108 at 2012-09-14
07:25:02 -0700
Processing by SearchController#results as HTML
Parameters: {"page"=>"13", "q"=>"orange"}
SQL (1.1ms) SHOW TABLES
SQL (0.7ms) SHOW TABLES
SQL (10.7ms) SHOW TABLES
SQL (0.7ms) SHOW TABLES
SQL (0.9ms) SHOW TABLES
SQL (0.8ms) SHOW TABLES
SQL (1.1ms) SHOW TABLES
SQL (1.1ms) SHOW TABLES
Sphinx Query (3.1ms) orange
Sphinx Found 324 results
Title Load (4.7ms) SELECT `titles`.* FROM `titles` WHERE `titles`.`id` IN
(274, 235, 2044, 101, 94, 2052, 1786, 2062, 1751, 757, 1726, 2081, 1714, 273,
1696, 1695, 711, 268, 1693, 1692)
Content Load (51.3ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 274)
Content Load (77.8ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 235)
Content Load (11.6ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 2044)
Content Load (71.9ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 101)
Content Load (35.4ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 94)
Content Load (18.1ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 2052)
Content Load (26.1ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1786)
Content Load (24.8ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 2062)
Content Load (11.5ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1751)
Content Load (16.9ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 757)
Content Load (33.0ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1726)
Content Load (43.4ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 2081)
Content Load (37.0ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1714)
Content Load (24.3ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 273)
Content Load (7.6ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1696)
Content Load (14.2ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1695)
Content Load (41.2ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 711)
Content Load (9.0ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 268)
Content Load (13.7ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1693)
Content Load (12.1ms) SELECT `contents`.* FROM `contents` WHERE
(`contents`.title_id = 1692)
User Load (1.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT
1
Rendered search/results.html.erb within layouts/application (3088.4ms)
When I have excerpts off, naturally I don't load that content twice, I'm just
looking in the Sphinx data store for matches and returning titles (which are
lightweight metadata-only records). I'm not sure if this can be optimized any
further using an optimistic load, but if it can, how would I signal that in a
general (site-wide) search clause? I'm using this method in my
search_controller:
@results = ThinkingSphinx.search params[:q], :page => params[:page],
:match_mode => :extended, :order => 'class_crc DESC, @relevance DESC'
Thanks again,
Walter
--
You received this message because you are subscribed to the Google Groups
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/thinking-sphinx?hl=en.