Skip to content
This repository was archived by the owner on Nov 23, 2024. It is now read-only.

Commit 70cd016

Browse files
committedJul 2, 2015
Moved <> back in the term
This reverts commit 17a1186.
1 parent 22afde8 commit 70cd016

File tree

3 files changed

+27
-77
lines changed

3 files changed

+27
-77
lines changed
 

‎lib/lucene-query-parser.js

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ module.exports = (function(){
4747
"paren_exp": parse_paren_exp,
4848
"field_exp": parse_field_exp,
4949
"fieldname": parse_fieldname,
50-
"separator": parse_separator,
5150
"term": parse_term,
5251
"unquoted_term": parse_unquoted_term,
5352
"term_char": parse_term_char,
@@ -443,12 +442,7 @@ module.exports = (function(){
443442
range['field'] =
444443
fieldname == ''
445444
? "<implicit>"
446-
: fieldname['name'];
447-
448-
range['separator'] =
449-
fieldname == ''
450-
? null
451-
: fieldname['separator'];
445+
: fieldname;
452446

453447
return range;
454448
})(pos0, result0[0], result0[1]);
@@ -474,8 +468,7 @@ module.exports = (function(){
474468
}
475469
if (result0 !== null) {
476470
result0 = (function(offset, fieldname, node) {
477-
node['field']= fieldname['name'];
478-
node['separator']= fieldname['separator'];
471+
node['field']= fieldname;
479472
return node;
480473
})(pos0, result0[0], result0[1]);
481474
}
@@ -505,11 +498,7 @@ module.exports = (function(){
505498
'field':
506499
fieldname == ''
507500
? "<implicit>"
508-
: fieldname['name'],
509-
'separator':
510-
fieldname == ''
511-
? null
512-
: fieldname['separator']
501+
: fieldname
513502
};
514503

515504
for(var key in term)
@@ -534,7 +523,15 @@ module.exports = (function(){
534523
pos1 = pos;
535524
result0 = parse_unquoted_term();
536525
if (result0 !== null) {
537-
result1 = parse_separator();
526+
if (/^[:]/.test(input.charAt(pos))) {
527+
result1 = input.charAt(pos);
528+
pos++;
529+
} else {
530+
result1 = null;
531+
if (reportFailures === 0) {
532+
matchFailed("[:]");
533+
}
534+
}
538535
if (result1 !== null) {
539536
result0 = [result0, result1];
540537
} else {
@@ -546,31 +543,16 @@ module.exports = (function(){
546543
pos = pos1;
547544
}
548545
if (result0 !== null) {
549-
result0 = (function(offset, fieldname, separator) {
550-
return {'name': fieldname, 'separator': separator}
551-
})(pos0, result0[0], result0[1]);
546+
result0 = (function(offset, fieldname) {
547+
return fieldname;
548+
})(pos0, result0[0]);
552549
}
553550
if (result0 === null) {
554551
pos = pos0;
555552
}
556553
return result0;
557554
}
558555

559-
function parse_separator() {
560-
var result0;
561-
562-
if (/^[>:<]/.test(input.charAt(pos))) {
563-
result0 = input.charAt(pos);
564-
pos++;
565-
} else {
566-
result0 = null;
567-
if (reportFailures === 0) {
568-
matchFailed("[>:<]");
569-
}
570-
}
571-
return result0;
572-
}
573-
574556
function parse_term() {
575557
var result0, result1, result2, result3, result4, result5;
576558
var pos0, pos1;
@@ -745,13 +727,13 @@ module.exports = (function(){
745727
}
746728
}
747729
if (result0 === null) {
748-
if (/^[^: <>\t\r\n\f{}()"\/^~[\]]/.test(input.charAt(pos))) {
730+
if (/^[^: \t\r\n\f{}()"\/^~[\]]/.test(input.charAt(pos))) {
749731
result0 = input.charAt(pos);
750732
pos++;
751733
} else {
752734
result0 = null;
753735
if (reportFailures === 0) {
754-
matchFailed("[^: <>\\t\\r\\n\\f{}()\"\\/^~[\\]]");
736+
matchFailed("[^: \\t\\r\\n\\f{}()\"\\/^~[\\]]");
755737
}
756738
}
757739
}

‎lib/lucene-query.grammar

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,13 @@ field_exp
138138
range['field'] =
139139
fieldname == ''
140140
? "<implicit>"
141-
: fieldname['name'];
142-
143-
range['separator'] =
144-
fieldname == ''
145-
? null
146-
: fieldname['separator'];
141+
: fieldname;
147142

148143
return range;
149144
}
150145
/ fieldname:fieldname node:paren_exp
151146
{
152-
node['field']= fieldname['name'];
153-
node['separator']= fieldname['separator'];
147+
node['field']= fieldname;
154148
return node;
155149
}
156150
/ fieldname:fieldname? term:term
@@ -159,11 +153,7 @@ field_exp
159153
'field':
160154
fieldname == ''
161155
? "<implicit>"
162-
: fieldname['name'],
163-
'separator':
164-
fieldname == ''
165-
? null
166-
: fieldname['separator']
156+
: fieldname
167157
};
168158

169159
for(var key in term)
@@ -173,14 +163,11 @@ field_exp
173163
}
174164

175165
fieldname
176-
= fieldname:unquoted_term separator:separator
166+
= fieldname:unquoted_term [:]
177167
{
178-
return {'name': fieldname, 'separator': separator}
168+
return fieldname;
179169
}
180170

181-
separator
182-
= [>:<]
183-
184171
term
185172
= op:prefix_operator_exp? term:quoted_term proximity:proximity_modifier? boost:boost_modifier? _*
186173
{
@@ -226,8 +213,7 @@ unquoted_term
226213
}
227214

228215
term_char
229-
= '.' / [^: <>\t\r\n\f\{\}()"/^~\[\]]
230-
216+
= '.' / [^: \t\r\n\f\{\}()"/^~\[\]]
231217

232218
quoted_term
233219
= '"' term:[^"]+ '"'

‎spec/lucene-query-parser.spec.js

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ describe("lucenequeryparser: term parsing", function() {
4949
});
5050

5151
it("accepts terms with '-'", function() {
52-
var results = lucenequeryparser.parse('created_at>now-5d');
52+
var results = lucenequeryparser.parse('created_at:>now-5d');
5353

54-
expect(results['left']['term']).toBe('now-5d');
54+
expect(results['left']['term']).toBe('>now-5d');
5555
});
5656

5757
it("accepts terms with '+'", function() {
58-
var results = lucenequeryparser.parse('published_at>now+5d');
58+
var results = lucenequeryparser.parse('published_at:>now+5d');
5959

60-
expect(results['left']['term']).toBe('now+5d');
60+
expect(results['left']['term']).toBe('>now+5d');
6161
});
6262
});
6363

@@ -261,24 +261,6 @@ describe("lucenequeryparser: range expressions", function() {
261261
});
262262
});
263263

264-
describe("lucenequeryparser: term seperator", function() {
265-
it("accepts > as field/term separator", function() {
266-
var results = lucenequeryparser.parse('created_at>yesterday');
267-
268-
expect(results['left']['field']).toBe('created_at');
269-
expect(results['left']['term']).toBe('yesterday');
270-
expect(results['left']['separator']).toBe('>');
271-
});
272-
273-
it("accepts < as field/term separator", function() {
274-
var results = lucenequeryparser.parse('created_at<today');
275-
276-
expect(results['left']['field']).toBe('created_at');
277-
expect(results['left']['term']).toBe('today');
278-
expect(results['left']['separator']).toBe('<');
279-
});
280-
});
281-
282264
describe("lucenequeryparser: Lucene Query syntax documentation examples", function() {
283265

284266
/*

0 commit comments

Comments
 (0)