Blame view

lib/mirimiri/index.rb 1.48 KB
aa386f553   Romain Deveaud   changes in query,...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  #!/usr/bin/env ruby
  
  #--
  # This file is a part of the mirimiri library
  #
  # Copyright (C) 2010-2012 Romain Deveaud <romain.deveaud@gmail.com>
  #
  # This program is free software: you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation, either version 3 of the License, or
  # (at your option) any later version.
  #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  #++
  
  class Index
  end
  
  module Indri
e0e33fca0   Romain Deveaud   new way of queryi...
26
    class IndriIndex < Index
aa386f553   Romain Deveaud   changes in query,...
27

e0e33fca0   Romain Deveaud   new way of queryi...
28
29
30
31
32
33
      def initialize path
        raise ArgumentError, 'Index path does not exist' unless File.directory? path
        @path = path
      end
  
      def runquery indriquery
aa386f553   Romain Deveaud   changes in query,...
34
35
        raise ArgumentError, 'Argument is not an IndriQuery' unless indriquery.is_a? Indri::IndriQuery
    
e0e33fca0   Romain Deveaud   new way of queryi...
36
        query = "IndriRunQuery -query=\"#{indriquery.query}\" -index=#{@path}"
aa386f553   Romain Deveaud   changes in query,...
37
38
39
40
  
        query += " -count=#{indriquery.count}" unless indriquery.count.nil?
        query += " -rule=method:#{indriquery.sm_method},#{indriquery.sm_param}:#{indriquery.sm_value}" unless indriquery.sm_method.nil?
        query += " #{indriquery.args}" unless indriquery.args.nil?
e0e33fca0   Romain Deveaud   new way of queryi...
41
42
43
44
  
        res = `#{query}`
  
        res
aa386f553   Romain Deveaud   changes in query,...
45
46
47
      end
    end
  end