comparison lucene/src/luan/modules/lucene/Lucene.luan @ 435:5b36f663a1b8

make members lower case
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 03 May 2015 21:28:49 -0600
parents cd2924a1052c
children 92c3d22745b8
comparison
equal deleted inserted replaced
434:472fc70853cd 435:5b36f663a1b8
11 local BooleanClause = require "java:org.apache.lucene.search.BooleanClause" 11 local BooleanClause = require "java:org.apache.lucene.search.BooleanClause"
12 local Sort = require "java:org.apache.lucene.search.Sort" 12 local Sort = require "java:org.apache.lucene.search.Sort"
13 local SortField = require "java:org.apache.lucene.search.SortField" 13 local SortField = require "java:org.apache.lucene.search.SortField"
14 14
15 15
16 function Index(indexDir) 16 function index(indexDir)
17 local index = {} 17 local index = {}
18 local java_index = LuceneIndex.new(indexDir) 18 local java_index = LuceneIndex.new(indexDir)
19 index.fields = java_index.fields 19 index.fields = java_index.fields.newTable()
20 index.to_string = java_index.to_string 20 index.to_string = java_index.to_string
21 index.backup = java_index.backup 21 index.backup = java_index.backup
22 index.Writer = java_index.Writer 22 index.Writer = java_index.Writer
23 index.Searcher = java_index.Searcher 23 index.Searcher = java_index.Searcher
24 index.delete_all = java_index.delete_all 24 index.delete_all = java_index.delete_all
59 end ) 59 end )
60 end 60 end
61 61
62 62
63 63
64 local Query = {} 64 local queryTbl = {}
65 index.Query = Query 65 index.query = queryTbl
66 66
67 Query.parse = java_index.parse 67 queryTbl.parse = java_index.parse
68 68
69 Query.all_docs = MatchAllDocsQuery.new() 69 queryTbl.all_docs = MatchAllDocsQuery.new()
70 70
71 function Query.term(t) 71 function queryTbl.term(t)
72 local iter = pairs(t) 72 local iter = pairs(t)
73 local field, value = iter() 73 local field, value = iter()
74 field and value or error "missing term" 74 field and value or error "missing term"
75 iter()==nil or error "only one term allowed" 75 iter()==nil or error "only one term allowed"
76 field = index.map_field_name(field) 76 field = index.map_field_name(field)
77 return TermQuery.new(Term.new(field,value)) 77 return TermQuery.new(Term.new(field,value))
78 end 78 end
79 79
80 function Query.boolean(t) 80 function queryTbl.boolean(t)
81 local boolean_query = BooleanQuery.new() 81 local boolean_query = BooleanQuery.new()
82 for query, occur_string in pairs(t) do 82 for query, occur_string in pairs(t) do
83 local occur = BooleanClause.Occur.valueOf( occur_string.upper() ) 83 local occur = BooleanClause.Occur.valueOf( occur_string.upper() )
84 boolean_query.add( query, occur ) 84 boolean_query.add( query, occur )
85 end 85 end
86 return boolean_query 86 return boolean_query
87 end 87 end
88 88
89 -- and list 89 -- and list
90 function Query.all(t) 90 function queryTbl.all(t)
91 local bt = {} 91 local bt = {}
92 for key, query in pairs(t) do 92 for key, query in pairs(t) do
93 if type(key)=="string" then 93 if type(key)=="string" then
94 query = Query.term{[key]=query} 94 query = queryTbl.term{[key]=query}
95 end 95 end
96 bt[query] = "MUST" 96 bt[query] = "MUST"
97 end 97 end
98 return Query.boolean(bt) 98 return queryTbl.boolean(bt)
99 end 99 end
100 100
101 -- or list 101 -- or list
102 function Query.any(t) 102 function queryTbl.any(t)
103 local bt = {} 103 local bt = {}
104 for key, query in pairs(t) do 104 for key, query in pairs(t) do
105 if type(key)=="string" then 105 if type(key)=="string" then
106 query = Query.term{[key]=query} 106 query = queryTbl.term{[key]=query}
107 end 107 end
108 bt[query] = "SHOULD" 108 bt[query] = "SHOULD"
109 end 109 end
110 return Query.boolean(bt) 110 return queryTbl.boolean(bt)
111 end 111 end
112 112
113 113
114 function Query.sort(fields) 114 function queryTbl.sort(fields)
115 #fields > 0 or error "list of sort fields expected" 115 #fields > 0 or error "list of sort fields expected"
116 local a = {} 116 local a = {}
117 for _, f in ipairs(fields) do 117 for _, f in ipairs(fields) do
118 f.field or error "missing sort field" 118 f.field or error "missing sort field"
119 f.type or error "missing sort type" 119 f.type or error "missing sort type"