如何使用Elasticsearch对视图内容编制索引?

卡姆登·纳兹特(Camden Narzt)

我有一个控制器,它显示几个视图,但没有模型支持,这些视图只是从erb渲染为html

我需要做的是从这些视图中获取在Elasticsearch中建立索引的文本,但是我遇到了相关文档不足的问题。

另一个复杂的因素是视图已翻译,因此它们不直接包含其文本。

我该怎么做才能使这些页面编入索引并可以搜索?既然不能依靠activerecord回调,应该如何维护索引?

卡姆登·纳兹特(Camden Narzt)

基于抓取网站的想法的解决方案:

在WelcomeController中:

format.json { render json: {body:view_to_text(view), title:@title, url:request.original_url.gsub(/\.json$/,'')} }
...
def view_to_text(view)
  html = render_to_string view, layout: false, formats: :html
  strip_tags(html).strip.gsub(/^[\s]+/,'').squeeze("\n")
end

并在rake任务中:

require 'open-uri'

namespace :scrape do
  desc "scrape view content and send to elasticsearch"
  task scrape: :environment do
    client = Elasticsearch::Model.client
    session = ActionDispatch::Integration::Session.new(Rails.application)
    session.host! Rails.application.config.action_mailer.default_url_options[:host]

    Rails.application.routes.routes.to_a.select{|r| r.defaults[:controller] == 'welcome'}.map{|r| r.path.spec.to_s.gsub( /\(\.\:format\)/, '.json') }.reject{|r| '/'==r}.each_with_index{|path,i|
      session.get path
      page_string = session.response.body
      client.index  index: Rails.env, type: 'welcome', id: i, body: page_string
    }
  end

end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elasticsearch中的索引编制

来自分类Dev

Elasticsearch如何使用命令行为文本文件编制索引

来自分类Dev

使用SearchKick / ElasticSearch编制索引时如何急于加载相关模型?

来自分类Dev

Elasticsearch如何使用命令行为文本文件编制索引

来自分类Dev

使用片段时如何正确实现状态栏后面的视图内容

来自分类Dev

ElasticSearch-使用Java API为大型文件编制索引

来自分类Dev

使用Python UTF-8问题进行Elasticsearch索引编制

来自分类Dev

ElasticSearch-使用Java API为大型文件编制索引

来自分类Dev

如何在iOS中计算Web视图内容的高度?

来自分类Dev

Android:如何使用矩阵对视图进行动画处理?

来自分类Dev

iOS-无法使用prepareforsegue设置容器视图内容

来自分类Dev

视图内的Angularjs JSON内容

来自分类Dev

使用局部视图在同一视图中创建和编制索引

来自分类Dev

可以在SQL Server中对视图使用全文索引吗?

来自分类Dev

Elasticsearch-什么是索引编制过程?

来自分类Dev

Python Elasticsearch 7.05索引编制失败

来自分类Dev

如何根据文本视图内容大小在滚动视图中设置启用或禁用滚动?

来自分类Dev

如何在视图内部使用返回重定向?

来自分类Dev

如何将数据存储在elasticsearch _source中而不对其编制索引?

来自分类Dev

并非所有文档都使用ElasticSearch和MongoDB编制了索引

来自分类Dev

Elasticsearch-什么更快?为相同的文档编制索引或使用detect_noop更新:是吗?

来自分类Dev

底部栏隐藏滚动视图内容

来自分类Dev

Android:顶部导航视图内容消失了

来自分类Dev

当滚动表视图内容改变时

来自分类Dev

动态列表视图内容 WPF

来自分类Dev

查看列表视图内容的问题

来自分类Dev

使用blurview作为相对视图

来自分类Dev

如何向剪贴板发送数据网格视图内容,例如CTRL-C

来自分类Dev

我该如何放置表格视图内容,使其不会碰到顶部

Related 相关文章

  1. 1

    Elasticsearch中的索引编制

  2. 2

    Elasticsearch如何使用命令行为文本文件编制索引

  3. 3

    使用SearchKick / ElasticSearch编制索引时如何急于加载相关模型?

  4. 4

    Elasticsearch如何使用命令行为文本文件编制索引

  5. 5

    使用片段时如何正确实现状态栏后面的视图内容

  6. 6

    ElasticSearch-使用Java API为大型文件编制索引

  7. 7

    使用Python UTF-8问题进行Elasticsearch索引编制

  8. 8

    ElasticSearch-使用Java API为大型文件编制索引

  9. 9

    如何在iOS中计算Web视图内容的高度?

  10. 10

    Android:如何使用矩阵对视图进行动画处理?

  11. 11

    iOS-无法使用prepareforsegue设置容器视图内容

  12. 12

    视图内的Angularjs JSON内容

  13. 13

    使用局部视图在同一视图中创建和编制索引

  14. 14

    可以在SQL Server中对视图使用全文索引吗?

  15. 15

    Elasticsearch-什么是索引编制过程?

  16. 16

    Python Elasticsearch 7.05索引编制失败

  17. 17

    如何根据文本视图内容大小在滚动视图中设置启用或禁用滚动?

  18. 18

    如何在视图内部使用返回重定向?

  19. 19

    如何将数据存储在elasticsearch _source中而不对其编制索引?

  20. 20

    并非所有文档都使用ElasticSearch和MongoDB编制了索引

  21. 21

    Elasticsearch-什么更快?为相同的文档编制索引或使用detect_noop更新:是吗?

  22. 22

    底部栏隐藏滚动视图内容

  23. 23

    Android:顶部导航视图内容消失了

  24. 24

    当滚动表视图内容改变时

  25. 25

    动态列表视图内容 WPF

  26. 26

    查看列表视图内容的问题

  27. 27

    使用blurview作为相对视图

  28. 28

    如何向剪贴板发送数据网格视图内容,例如CTRL-C

  29. 29

    我该如何放置表格视图内容,使其不会碰到顶部

热门标签

归档