Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 多重弹性搜索过滤器_Ruby On Rails_Ruby On Rails 4_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Tire - Fatal编程技术网 elasticsearch,tire,Ruby On Rails,Ruby On Rails 4,elasticsearch,Tire" /> elasticsearch,tire,Ruby On Rails,Ruby On Rails 4,elasticsearch,Tire" />

Ruby on rails 多重弹性搜索过滤器

Ruby on rails 多重弹性搜索过滤器,ruby-on-rails,ruby-on-rails-4,elasticsearch,tire,Ruby On Rails,Ruby On Rails 4,elasticsearch,Tire,我使用Tire for rails集成elasticsearch。这一点很让人困惑,我想确保我做得对 这就是我应用多个过滤器的方式吗?我基本上是想检查“混音带id为空,艺术家id不为空” def self.search(query) tire.search() do query { string query } filter :exists, { field: 'artist_id' } filter :not, { exists: { fiel

我使用Tire for rails集成elasticsearch。这一点很让人困惑,我想确保我做得对

这就是我应用多个过滤器的方式吗?我基本上是想检查“混音带id为空,艺术家id不为空”

  def self.search(query)
    tire.search() do
      query  { string query }
      filter :exists, { field: 'artist_id' }
      filter :not, { exists: { field: 'mixtape_id' } }
    end
  end
这是我的第二次尝试,似乎仍然不起作用

  def self.search(query)
    tire.search(load: true) do
      query  { string query }
      filter :and, [
        { exists: { field: 'artist_id' } },
        { not: { exists: { field: 'mixtape_id' } } }
      ]
    end
  end

谢谢

我大部分时间都在使用它,每次我都愚蠢地忘记了强制重新编制索引。下面是一些已清理的代码,它利用了
缺少的
过滤器

  def self.search(query)
    tire.search load: { include: { artist: :attachments } } do
      query  { string query }
      filter :and, [
        { exists:  { field: 'artist_id' } },
        { missing: { field: 'mixtape_id' } }
      ]
    end
  end