search-function
{{ resolvedDiscussionCount }}/{{ discussionCount }} {{ resolvedCountText }} resolved
-
21 21 @job = Job.find_by(slug: params[:job_slug]) or not_found 22 22 end 23 23 24 def search 25 @keyword = job_params[:search].gsub!(/[^[:alnum:]]/, ' ') 26 solr = RSolr.connect url: 'http://localhost:8983/solr/VeNJOB' -
Master
@phuongnhm Nhìn sơ qua thì solr của em có dùng nhiều chỗ.
Build phần solr ra thành một class riêng trong thư mục
libá, ví dụ:SolrSearchKhi chỗ nào dùng thì chỉ cần
SolrSearch.new(param_cần_thiết)Mỗi chức năng thì build function riêng trong class đó.
-
-
-
-
21 21 @job = Job.find_by(slug: params[:job_slug]) or not_found 22 22 end 23 23 24 def search 25 @keyword = job_params[:search].gsub!(/[^[:alnum:]]/, ' ') 26 search_param = SolrSearch.new.search(@keyword) -
MasterEdited by Thanh Hung Pham
Đặt lại tên biến cho dễ hiểu em. Cái này kết quả search trả về mà, sao đặt là
search_param?Anh thấy em đang query hết kết quả trên Solr về.
start: 0, rows: 2_147_483_647- Em tham khảo phần paging bằng Solr nè. https://github.com/rsolr/rsolr#pagination-
-
-
-
28 28 def favorite_text(job) 29 29 FavoriteJob.find_by(job: job, user: current_user).present? ? 'Unfavorite' : 'Favorite' 30 30 end 31 32 def search(input) -
Master
- Tại sao phải viết thêm cái helper này nhỉ? Sao không dùng luôn kết quả từ Solr trả về?
- Mà sau này có viết method mới cũng nên chú ý:
- Tên method cho rõ ràng nội dung của method, đọc vào dễ hiểu
- Tương tự tên tham số truyền vào cũng vậy
-
-
-
lib/solr/solr_search.rb 0 → 100644
1 class SolrSearch 2 def initialize 3 @solr = RSolr.connect url: 'http://localhost:8983/solr/VeNJOB' 4 end 5 6 def search(keyword) 7 response = @solr.get 'select', params: { 8 q: "cities_name: #{keyword}* or title: #{keyword}* or industries_name: #{keyword}* or company_name: #{keyword}*", -
Master
@phuongnhm
*này ý nghĩa là gì vậy em? -
-
-
lib/solr/solr_search.rb 0 → 100644
1 class SolrSearch 2 def initialize 3 @solr = RSolr.connect url: 'http://localhost:8983/solr/VeNJOB' 4 end 5 6 def search(keyword) 7 response = @solr.get 'select', params: { 8 q: "cities_name: #{keyword}* or title: #{keyword}* or industries_name: #{keyword}* or company_name: #{keyword}*", 9 fl: %w[job_id slug], 10 start: 0, -
MasterEdited by Thanh Hung Pham
- Anh có review ở trên á. Em tham khảo phần paging của Solr á.
start: 0, rows: 2_147_483_647 -
-
-
-
lib/solr/solr_search.rb 0 → 100644
1 class SolrSearch 2 def initialize 3 @solr = RSolr.connect url: 'http://localhost:8983/solr/VeNJOB' 4 end 5 6 def search(keyword) 7 response = @solr.paginate 1, 2_147_483_647, 'select', params: { -
Master
- Cái này mà paging gì em?
- Em truyền cố định 2 số như vậy
1, 2_147_483_647thì làm sao nó paging được? - Em phải lấy giá trị page hiện tại trên giao diện để truyền vào chứ.
-
-
-
app/views/jobs/search.html.slim 0 → 100644
1 .container.p-3 2 h5.fw-normal 3 | Total: 4 = pluralize(@total, 'job') 5 h5.fw-normal 6 | Result for: 7 = @keyword 8 .d-flex.justify-content-center.p-2 9 = paginate @result_search, window: 1 10 .job-list 11 - @result_search.each do |job| 12 .row.bg-white 13 .col-10.p-3.card-body.text-dark 14 h5.mb-1 15 = link_to query_job(job).title, detail_path(job['slug']) -
Master
@phuongnhm Hiện tại em dùng đi dùng lại rất nhiều lần trong view, mỗi lần gọi
query_job(job)nó sẽ query xuống DB. như vậy không tốt -
-
-
Toggle commit list
-
merged
Toggle commit list