小编kar*_*rmi的帖子

Elasticsearch,Tire和嵌套查询/与ActiveRecord的关联

我正在使用ElasticSearch with Tire来索引和搜索一些ActiveRecord模型,我一直在寻找索引和搜索关联的"正确"方法.我还没有找到对此最好的做法,所以我想问一下是否有人认为他们认为有效的做法.

作为一个示例设置(这是组成但说明了问题),让我们说我们有一本书,有章节.每本书都有一个标题和作者,以及一堆章节.每章都有文字.我们希望将书籍的字段和章节的文本编入索引,以便您可以按作者搜索书籍,也可以搜索包含特定词语的任何书籍.

class Book < ActiveRecord::Base
  include Tire::Model::Search
  include Tire::Model::Callbacks

  has_many :chapters

  mapping do
    indexes :title, :analyzer => 'snowball', :boost => 100
    indexes :author, :analyzer => 'snowball'
    indexes :chapters, type: 'object', properties: {
      chapter_text: { type: 'string', analyzer: 'snowball' }
    }
  end
end

class Chapter < ActiveRecord::Base
  belongs_to :book
end
Run Code Online (Sandbox Code Playgroud)

那么我用以下搜索进行搜索:

s = Book.search do
  query { string query_string }
end
Run Code Online (Sandbox Code Playgroud)

这不起作用,即使看起来索引应该这样做.如果相反我索引:

indexes :chapters, :as => 'chapters.map{|c| c.chapter_text}.join('|'), :analyzer => 'snowball'
Run Code Online (Sandbox Code Playgroud)

这使文本可搜索,但显然它不是一个很好的黑客,它失去了实际的相关对象.我尝试过各种搜索,例如:

s = Book.search do
  query do …
Run Code Online (Sandbox Code Playgroud)

elasticsearch tire

27
推荐指数
1
解决办法
9483
查看次数

ElasticSearch&Tire:使用Mapping和to_indexed_json

在阅读轮胎文档时,我的印象是你应该使用其中之一mappingto_indexed_json方法,因为(我的理解是......)mapping用来喂养to_indexed_json.

问题是,我找到了一些使用它们的教程.为什么?

基本上,我的应用程序现在正在使用to_indexed_json但我无法弄清楚如何设置某些属性的提升值(因此我开始查看映射的原因),我想知道是否使用两者会产生一些冲突.

ruby ruby-on-rails elasticsearch tire

20
推荐指数
1
解决办法
5295
查看次数

无法通过Homebrew启动elasticsearch服务器

所以我通过brew安装了elasticsearch:

$ brew install elasticsearch
Run Code Online (Sandbox Code Playgroud)

然后当我运行elasticsearch服务器时:

elasticsearch -f -D es.config=/usr/local/Cellar/elasticsearch/0.19.3/config/elasticsearch.yml
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

{0.20.4}: Setup Failed ...
- FailedToResolveConfigException[Failed to resolve config path [/usr/local/Cellar/elasticsearch/0.19.3/config/elasticsearch.yml], tried file path [/usr/local/Cellar/elasticsearch/0.19.3/config/elasticsearch.yml], path file [/usr/local/Cellar/elasticsearch/0.20.4/config/usr/local/Cellar/elasticsearch/0.19.3/config/elasticsearch.yml], and classpath]
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?任何想法都欢迎.

我这样做了,它对我有用:

获取包裹:

$ curl -k -L -o elasticsearch-0.20.2.tar.gz http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.2.tar.gz
Run Code Online (Sandbox Code Playgroud)

Unzipp:

$ tar -zxvf elasticsearch-0.20.2.tar.gz
Run Code Online (Sandbox Code Playgroud)

运行elasticsearch服务器:

./elasticsearch-0.20.2/bin/elasticsearch -f
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3 elasticsearch tire

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

如何在d3.js中创建"斜率图"

定量信息的视觉显示中,爱德华·图夫特(Edward Tufte)创造了一个术语"斜率图",用于表示非常小的图表(更多信息).权威示例如下所示:

斜率图的示例

有在slopegraph至少两个实现d3.js在日野:

我对一个更具说明性的实现进行了尝试,并且还保留了两列中值之间的100%对应关系,但是卡住了.正如预期的那样,当数据集中出现具有相似或相同值的项目时,图形会重叠,并且图表不可读.

幼稚版本()使用linear用于计算水平位置刻度,而企图"正常化"的位置()使用ordinal的规模.

我相信使用序数量表可以获得更好的结果,根据重叠项的坐标计算偏移量.是否应为两列分别计算偏移量,是应根据数据预先计算,还是在设置属性时动态计算?如何扩展代码库,使具有相同值的项目位于彼此之下,其他项目也相应调整,两列中的值保持在同一水平位置?

visualization d3.js

8
推荐指数
2
解决办法
4435
查看次数