| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 1 | package de.ids_mannheim.korap.query.wrap; |
| 2 | |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 3 | import org.apache.lucene.index.Term; |
| Akron | a26184e | 2018-12-05 15:37:34 +0100 | [diff] [blame] | 4 | import org.apache.lucene.search.WildcardQuery; |
| 5 | import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper; |
| 6 | import org.apache.lucene.search.spans.SpanQuery; |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 7 | |
| Nils Diewald | 92729ce | 2014-10-06 16:00:17 +0000 | [diff] [blame] | 8 | public class SpanWildcardQueryWrapper extends SpanQueryWrapper { |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 9 | private SpanQuery query; |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 10 | |
| 11 | |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 12 | public SpanWildcardQueryWrapper (String field, String wc) { |
| Nils Diewald | d75e6f6 | 2015-01-28 23:44:56 +0000 | [diff] [blame] | 13 | this(field, wc, false); |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 14 | }; |
| 15 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 16 | |
| 17 | public SpanWildcardQueryWrapper (String field, String wc, |
| 18 | boolean caseinsensitive) { |
| Nils Diewald | d75e6f6 | 2015-01-28 23:44:56 +0000 | [diff] [blame] | 19 | if (caseinsensitive) { |
| 20 | if (wc.startsWith("s:")) { |
| 21 | wc = wc.replaceFirst("s:", "i:"); |
| 22 | }; |
| 23 | wc = wc.toLowerCase(); |
| 24 | }; |
| 25 | WildcardQuery wcquery = new WildcardQuery(new Term(field, wc)); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 26 | query = new SpanMultiTermQueryWrapper<WildcardQuery>(wcquery); |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 27 | }; |
| 28 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 29 | |
| Akron | a7b936d | 2016-03-04 13:40:54 +0100 | [diff] [blame] | 30 | public SpanQuery toFragmentQuery () { |
| Nils Diewald | d75e6f6 | 2015-01-28 23:44:56 +0000 | [diff] [blame] | 31 | return this.query; |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 32 | }; |
| Nils Diewald | 6b33281 | 2014-07-22 18:51:05 +0000 | [diff] [blame] | 33 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 34 | |
| Nils Diewald | 6b33281 | 2014-07-22 18:51:05 +0000 | [diff] [blame] | 35 | public boolean isNull () { |
| Nils Diewald | d75e6f6 | 2015-01-28 23:44:56 +0000 | [diff] [blame] | 36 | return false; |
| Nils Diewald | 6b33281 | 2014-07-22 18:51:05 +0000 | [diff] [blame] | 37 | }; |
| Nils Diewald | b0dd955 | 2013-12-20 02:28:34 +0000 | [diff] [blame] | 38 | }; |