Commit 9ecd12ed839a10b5031fd52efbbef550802ad70e

Authored by Andrew Kane
1 parent 24615363

Moved partial reindexing to performance section [skip ci]

Showing 1 changed file with 27 additions and 15 deletions   Show diff stats
@@ -1158,6 +1158,33 @@ Reindex and search with: @@ -1158,6 +1158,33 @@ Reindex and search with:
1158 Business.search "ice cream", routing: params[:city_id] 1158 Business.search "ice cream", routing: params[:city_id]
1159 ``` 1159 ```
1160 1160
  1161 +### Partial Reindexing
  1162 +
  1163 +Reindex a subset of attributes to reduce time spent generating search data and cut down on network traffic.
  1164 +
  1165 +```ruby
  1166 +class Product < ActiveRecord::Base
  1167 + def search_data
  1168 + {
  1169 + name: name
  1170 + }.merge(search_prices)
  1171 + end
  1172 +
  1173 + def search_prices
  1174 + {
  1175 + price: price,
  1176 + sale_price: sale_price
  1177 + }
  1178 + end
  1179 +end
  1180 +```
  1181 +
  1182 +And use:
  1183 +
  1184 +```ruby
  1185 +Product.reindex(:search_prices)
  1186 +```
  1187 +
1161 ### Performant Conversions 1188 ### Performant Conversions
1162 1189
1163 Split out conversions into a separate method so you can use partial reindexing, and cache conversions to prevent N+1 queries. Be sure to use a centralized cache store like Memcached or Redis. 1190 Split out conversions into a separate method so you can use partial reindexing, and cache conversions to prevent N+1 queries. Be sure to use a centralized cache store like Memcached or Redis.
@@ -1396,21 +1423,6 @@ Reindex associations @@ -1396,21 +1423,6 @@ Reindex associations
1396 store.products.reindex 1423 store.products.reindex
1397 ``` 1424 ```
1398 1425
1399 -Reindex a subset of attributes (partial reindex)  
1400 -  
1401 -```ruby  
1402 -class Product < ActiveRecord::Base  
1403 - def search_prices  
1404 - {  
1405 - price: price,  
1406 - sale_price: sale_price  
1407 - }  
1408 - end  
1409 -end  
1410 -  
1411 -Product.reindex(:search_prices)  
1412 -```  
1413 -  
1414 Remove old indices 1426 Remove old indices
1415 1427
1416 ```ruby 1428 ```ruby