小编Mel*_*emi的帖子

尝试索引PDF时出现Elasticsearch Parse Exception错误

我刚刚开始使用elasticsearch.我们的要求是我们需要索引数千个PDF文件,而我很难获得其中一个成功编制索引.

安装了Attachment Type插件并获得了响应:Installed mapper-attachments.

按照附件类型操作教程,但该过程挂起,我不知道如何解释错误消息.还尝试了挂在同一个地方的要点.

$ curl -X POST "localhost:9200/test/attachment/" -d json.file 
{"error":"ElasticSearchParseException[Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]]","status":400}
Run Code Online (Sandbox Code Playgroud)

更多细节:

json.file包含一个嵌入式的Base64 PDF文件(按说明).该文件的第一行显示正确(无论如何):{"file":"JVBERi0xLjQNJeLjz9MNCjE1OCAwIG9iaiA8...

我不确定是否可能json.file是无效的,或者是否可能没有设置弹性搜索来正确解析PDF?!?

编码 - 以下是我们如何将PDF编码为json.file(根据教程):

coded=`cat fn6742.pdf | perl -MMIME::Base64 -ne 'print encode_base64($_)'`
json="{\"file\":\"${coded}\"}"
echo "$json" > json.file
Run Code Online (Sandbox Code Playgroud)

还尝试过:

coded=`openssl base64 -in fn6742.pdf
Run Code Online (Sandbox Code Playgroud)

日志:

[2012-06-07 12:32:16,742][DEBUG][action.index             ] [Bailey, Paul] [test][0], node[AHLHFKBWSsuPnTIRVhNcuw], [P], …
Run Code Online (Sandbox Code Playgroud)

pdf base64 osx-server elasticsearch apache-tika

15
推荐指数
1
解决办法
2万
查看次数

设置环境变量(ENV)以在Rails中使用

在Rails服务器上试验MongoID,并对如何/在何处设置环境变量感到困惑.

config/mongoid.yml 默认模板提供:

defaults: &defaults
  host: localhost

...

# set these environment variables on your prod server
production:
  host: <%= ENV['MONGOID_HOST'] %>
  port: <%= ENV['MONGOID_PORT'] %>
  username: <%= ENV['MONGOID_USERNAME'] %>
  password: <%= ENV['MONGOID_PASSWORD'] %>
  database: <%= ENV['MONGOID_DATABASE'] %>
Run Code Online (Sandbox Code Playgroud)

我的问题是这些是在Rails中设置的吗?或者他们是在系统级别?如果是这样设置的地方/如何设置,以便不需要登录任何用户帐户才能使它们有效?

unix ruby-on-rails environment-variables osx-server

14
推荐指数
1
解决办法
9775
查看次数

Rails:如何回滚拙劣的迁移

我是个白痴......搞砸了Rails的迁移:

思考迁移将像模型生成器一样工作(使用references:modelname)我做了以下事情:

$ rails g migration add_event_to_photos references:event
Run Code Online (Sandbox Code Playgroud)

这创造了迁移

class AddEventToPhotos < ActiveRecord::Migration
  def change
    add_column :photos, :references, :event
  end
end
Run Code Online (Sandbox Code Playgroud)

现在我的开发数据库(SQLite3)在表中有一个references类型eventphotos列.

我的schema.rb中间有一行说:

# Could not dump table "photos" because of following StandardError
#   Unknown type 'event' for column 'references'
Run Code Online (Sandbox Code Playgroud)

rake db:rollback 无能为力:

$ rake db:rollback
==  AddEventToPhotos: reverting ===============================================
-- remove_column("photos", :references)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `to_sym' for nil:NilClass …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rollback rails-migrations ruby-on-rails-3

14
推荐指数
2
解决办法
5548
查看次数

理解Rails 3的respond_with

利用ActionController的新respond_with方法......当action(保存)成功时以及何时不成功时,它如何确定要呈现的内容?

我问,因为我试图获得一个脚手架生成的规范(包括在下面),如果只是为了让我能理解它.该应用程序工作正常,但奇怪/carriers的是,当验证失败时,它似乎正在渲染(至少是浏览器的URL所说的).然而,规范期待"new"(我也是如此),而是接受<"">.如果我更改规格以期望""它仍然失败.

当它呈现/carriers该页面时,会显示错误验证失败的字段旁边的error_messages.

任何熟悉的人都能respond_with看到这里发生了什么吗?

#carrier.rb
  validates :name, :presence => true 

#carriers_controller.rb
class CarriersController < ApplicationController
  respond_to :html, :json

...

  def new
    respond_with(@carrier = Carrier.new)
  end

  def create
     @carrier = Carrier.new(params[:carrier])
     flash[:success] = 'Carrier was successfully created.' if @carrier.save
     respond_with(@carrier) 
  end
Run Code Online (Sandbox Code Playgroud)

规格失败:

#carriers_controller_spec.rb
require 'spec_helper'

describe CarriersController do

  def mock_carrier(stubs={})
    (@mock_carrier ||= mock_model(Carrier).as_null_object).tap do |carrier|
      carrier.stub(stubs) unless stubs.empty?
    end
  end


  describe "POST create" do
    describe "with invalid …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails respond-with

12
推荐指数
1
解决办法
8336
查看次数

在Rails 3.1 Asset Pipeline中放置Galleria(jQuery图库框架)的位置?

关于在Rails 3.1的新资产管道中放置像Galleria这样的jQuery框架,我有点困惑?

从技术上讲,我知道它应该进入/vendors/assets/javascripts 但是,我的理解是,Galleria带有jQuery和主题的文件夹想要/galleria在实时站点的root()中才能正常工作.

此外,当我们在它的时候,在哪里放置以下脚本,以便它只出现在带有图库的页面上?

<script>
    $('#gallery').galleria({
        width:500,
        height:500
    });
</script>
Run Code Online (Sandbox Code Playgroud)

编辑:惊讶没有回应!?!也许Galleria不那么受欢迎?这些是我正在尝试加载的文件.虽然我可以很容易地移动它们,但它们是这样捆绑的:

vendor/
  assets/
    javascripts/
      galleria-1.2.5.js
      galleria-1.2.5.min.js
    galleria/
      themes/
        classic/
          classic-loader.gif
          classic-map.png
          galleria.classic.css
          galleria.classic.js
          galleria.classic.min.js
Run Code Online (Sandbox Code Playgroud)

我以为Sprockets require_tree .会加载所有内容app/assets,lib/assets并且vendor/assets?!?

ruby-on-rails galleria ruby-on-rails-3.1 sprockets asset-pipeline

12
推荐指数
2
解决办法
3881
查看次数

Git:取消交互式rebase

我喜欢git rebase -i HEAD~5压下我的承诺.有时我认为我需要返回5次提交然后意识到我需要7.然而git已经.git/rebase-merge/git-rebase-todo在vim中提出了rebase编辑器.

如果我退出缓冲区(vim),那么git说:

Successfully rebased and updated refs/heads/my-branchname
Run Code Online (Sandbox Code Playgroud)

有没有办法在编辑器中停止转换?我想我可以git rebase --abort从另一个shell,但不知道这会对git-rebase-todo我在另一个缓冲区中编辑的文件做什么.

git vim rebase

12
推荐指数
2
解决办法
5612
查看次数

Rails 3 link_to(:method =>:delete)不起作用

在Rails中的动词遇到了麻烦 ......

查看资源(狗)的页面has_many(跳蚤).嵌入在狗中的show.html.haml是一个render @dog.fleas自动(?)查找并使用"fleas/_flea.html.haml"中的模板来列出与所述狗相关的每个跳蚤的调用.

这显示正确.噢!现在,在每个跳蚤的旁边,我放了一个"Kill Flea"链接进入网址://localhost:3000/dogs/1/fleas/7.由哪个生成:

= link_to("Kill Flea", [ flea.dog, flea ], :method => :delete, :confirm => "Sure? A bunny will die")
Run Code Online (Sandbox Code Playgroud)

但是每次点击该链接都没有确认...并且它会呈现跳蚤的show.html页面.这是因为如果它使用GET/dogs/1/fleas/7,而不是删除?!?

ps-不担心蜘蛛和机器人在我的数据库中删除东西......我只是想学习Rails ......并了解发生了什么

routing ruby-on-rails rails-routing

11
推荐指数
3
解决办法
2万
查看次数

Rails 3:使用respond_with删除资源的正确方法

我试图通过合并来干扰控制器respond_with.当我这样做时,遵循Railscast中的一些指示,我得到的东西大部分都在工作.问题在于删除资源后的重定向...应该重定向到people_url...而是尝试加载特定资源.

我找到的示例代码看起来像这样......但是它尝试加载刚删除的资源失败了:

# app/controllers/people_controller.rb
class PeopleController < ApplicationController
  respond_to :html, :xml

  def destroy
    @person = Person.find(params[:id])
    flash[:notice] = 'Successfully deleted person.' if @person.destroy
    respond_with(@person)  # <== spec fails here
  end
end
Run Code Online (Sandbox Code Playgroud)

改变最后一行respond_with(@people)也不起作用(虽然我曾希望它会...)

经过深入挖掘并尽力了解事情,我确实让事情发生了(至少看起来如此.规格传递.app功能)用这个:

respond_with(@person, :location => people_url)  # <== now it works
Run Code Online (Sandbox Code Playgroud)

那么,这是处理这个问题的正确方法吗?似乎有了所有'魔法'背后的response_with它会知道删除后它不能重定向到自己?我也认为这个(7种基本的RESTful CRUD方法之一)将是非常基本和基本的,所以很多例子会比比皆是......但我找不到很多,除了那些暗示代码不起作用的代码我.

希望有人可以帮助我理解这里发生的铁轨'魔力'所以当我在路上爆炸时,我不会感到惊讶.

ruby-on-rails actioncontroller respond-with ruby-on-rails-3

11
推荐指数
1
解决办法
4496
查看次数

优胜美地的Capybara-webkit和Qt5

最新的Capybara-webkit抛出弃用警告:

WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt. You're using version 4.8.7.
Run Code Online (Sandbox Code Playgroud)

所以我:

gem uninstall capybara-webkit
brew uninstall qt
brew install qt5
gem install capybara-webkit
Run Code Online (Sandbox Code Playgroud)

这种贬值现在已经消失,但一切都崩溃了:

$ rspec -p -- spec/features

Randomized with seed 52457
...2015-07-30 16:56:21.731 webkit_server[8416:6381638] Error loading /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin:  dlopen(/Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin, 265): no suitable image found.  Did find:
    /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin: mach-o, but wrong architecture
plugin,NP_Initialize start
plugin,NP_Initialize end
plugin,NP_GetEntryPoints start
Private_Initialize
plugin,NP_GetEntryPoints end …
Run Code Online (Sandbox Code Playgroud)

qt quicktime ruby-on-rails capybara-webkit qt5

11
推荐指数
2
解决办法
1945
查看次数

XCode>仪器>泄漏 - "收集泄漏的内存内容"数据在哪里?

当您检查Leaks仪器中收集泄漏的内存内容时,这有什么作用?我有一个麻烦的泄漏,并认为这个"记忆内容"可能有助于追踪它...但我找不到它!?!

xcode cocoa memory-leaks instruments

10
推荐指数
1
解决办法
2173
查看次数