Java Code Examples for org.apache.lucene.util.automaton.Operations#union()
The following examples show how to use
org.apache.lucene.util.automaton.Operations#union() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ContextQuery.java From lucene-solr with Apache License 2.0 | 6 votes |
private static Automaton toContextAutomaton(final Map<IntsRef, ContextMetaData> contexts, final boolean matchAllContexts) { final Automaton matchAllAutomaton = Operations.repeat(Automata.makeAnyString()); final Automaton sep = Automata.makeChar(ContextSuggestField.CONTEXT_SEPARATOR); if (matchAllContexts || contexts.size() == 0) { return Operations.concatenate(matchAllAutomaton, sep); } else { Automaton contextsAutomaton = null; for (Map.Entry<IntsRef, ContextMetaData> entry : contexts.entrySet()) { final ContextMetaData contextMetaData = entry.getValue(); final IntsRef ref = entry.getKey(); Automaton contextAutomaton = Automata.makeString(ref.ints, ref.offset, ref.length); if (contextMetaData.exact == false) { contextAutomaton = Operations.concatenate(contextAutomaton, matchAllAutomaton); } contextAutomaton = Operations.concatenate(contextAutomaton, sep); if (contextsAutomaton == null) { contextsAutomaton = contextAutomaton; } else { contextsAutomaton = Operations.union(contextsAutomaton, contextAutomaton); } } return contextsAutomaton; } }
Example 2
Source File: TestRegexpQuery.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testCustomProvider() throws IOException { AutomatonProvider myProvider = new AutomatonProvider() { // automaton that matches quick or brown private Automaton quickBrownAutomaton = Operations.union(Arrays .asList(Automata.makeString("quick"), Automata.makeString("brown"), Automata.makeString("bob"))); @Override public Automaton getAutomaton(String name) { if (name.equals("quickBrown")) return quickBrownAutomaton; else return null; } }; RegexpQuery query = new RegexpQuery(newTerm("<quickBrown>"), RegExp.ALL, myProvider, DEFAULT_MAX_DETERMINIZED_STATES); assertEquals(1, searcher.search(query, 5).totalHits.value); }
Example 3
Source File: CategoryContextMapping.java From Elasticsearch with Apache License 2.0 | 5 votes |
@Override public Automaton toAutomaton() { List<Automaton> automatons = new ArrayList<>(); for (CharSequence value : values) { automatons.add(Automata.makeString(value.toString())); } return Operations.union(automatons); }
Example 4
Source File: GeolocationContextMapping.java From Elasticsearch with Apache License 2.0 | 5 votes |
@Override public Automaton toAutomaton() { Automaton automaton; if(precisions == null || precisions.length == 0) { automaton = Automata.makeString(location); } else { automaton = Automata.makeString(location.substring(0, Math.max(1, Math.min(location.length(), precisions[0])))); for (int i = 1; i < precisions.length; i++) { final String cell = location.substring(0, Math.max(1, Math.min(location.length(), precisions[i]))); automaton = Operations.union(automaton, Automata.makeString(cell)); } } return automaton; }
Example 5
Source File: TermInSetQuery.java From lucene-solr with Apache License 2.0 | 5 votes |
private ByteRunAutomaton asByteRunAutomaton() { TermIterator iterator = termData.iterator(); List<Automaton> automata = new ArrayList<>(); for (BytesRef term = iterator.next(); term != null; term = iterator.next()) { automata.add(Automata.makeBinary(term)); } return new CompiledAutomaton(Operations.union(automata)).runAutomaton; }
Example 6
Source File: TestAutomatonQuery.java From lucene-solr with Apache License 2.0 | 5 votes |
/** * Test that a nondeterministic automaton works correctly. (It should will be * determinized) */ public void testNFA() throws IOException { // accept this or three, the union is an NFA (two transitions for 't' from // initial state) Automaton nfa = Operations.union(Automata.makeString("this"), Automata.makeString("three")); assertAutomatonHits(2, nfa); }
Example 7
Source File: TestGraphTokenizers.java From lucene-solr with Apache License 2.0 | 5 votes |
public void testSynOverHole() throws Exception { final TokenStream ts = new CannedTokenStream( new Token[] { token("a", 1, 1), token("X", 0, 2), token("b", 2, 1), }); final Automaton a1 = Operations.union(join(s2a("a"), SEP_A, HOLE_A), s2a("X")); final Automaton expected = Operations.concatenate(a1, join(SEP_A, s2a("b"))); assertSameLanguage(expected, ts); }
Example 8
Source File: TestGraphTokenizers.java From lucene-solr with Apache License 2.0 | 5 votes |
public void testSynOverHole2() throws Exception { final TokenStream ts = new CannedTokenStream( new Token[] { token("xyz", 1, 1), token("abc", 0, 3), token("def", 2, 1), }); final Automaton expected = Operations.union( join(s2a("xyz"), SEP_A, HOLE_A, SEP_A, s2a("def")), s2a("abc")); assertSameLanguage(expected, ts); }
Example 9
Source File: Regex.java From crate with Apache License 2.0 | 5 votes |
/** * Return an Automaton that matches the union of the provided patterns. */ public static Automaton simpleMatchToAutomaton(String... patterns) { if (patterns.length < 1) { throw new IllegalArgumentException("There must be at least one pattern, zero given"); } List<Automaton> automata = new ArrayList<>(); for (String pattern : patterns) { automata.add(simpleMatchToAutomaton(pattern)); } return Operations.union(automata); }
Example 10
Source File: XContentMapValues.java From crate with Apache License 2.0 | 4 votes |
/** Make matches on objects also match dots in field names. * For instance, if the original simple regex is `foo`, this will translate * it into `foo` OR `foo.*`. */ private static Automaton makeMatchDotsInFieldNames(Automaton automaton) { return Operations.union( automaton, Operations.concatenate(Arrays.asList(automaton, Automata.makeChar('.'), Automata.makeAnyString()))); }