Soy nuevo en Lucene, estoy tratando de hacer una búsqueda algo como estoLucene "o consultas"
content="some thext" and (id ="A" or id="B" or id="c")
estoy realmente perdido con eso, ustedes me podría ayudar a
Gracias.
Soy nuevo en Lucene, estoy tratando de hacer una búsqueda algo como estoLucene "o consultas"
content="some thext" and (id ="A" or id="B" or id="c")
estoy realmente perdido con eso, ustedes me podría ayudar a
Gracias.
creo que la sección "Agrupación" en el Query Parser Syntax documentation proporciona la respuesta:
(jakarta OR apache) AND website
Sospecho que debe hacer sus operadores (and
, or
) mayúsculas. Además, no creo que puedas usar el operador de iguales (usa dos puntos en su lugar).
content:"some thext" AND (id:"A" OR id:"B" OR id:"c")
BooleanQuery mainQuery = new BooleanQuery();
TermQuery contentFilter = new TermQuery(new Term("content", "some text"));
mainQuery.add(contentFilter, BooleanClause.Occur.MUST);
BooleanQuery idFilter = new BooleanQuery();
idFilter.setMinimumNumberShouldMatch(1);
idFilter.add(new TermQuery(new Term("id", A)), BooleanClause.Occur.SHOULD);
idFilter.add(new TermQuery(new Term("id", B)), BooleanClause.Occur.SHOULD);
idFilter.add(new TermQuery(new Term("id", C)), BooleanClause.Occur.SHOULD);
mainQuery.Add(idFilter, BooleanClause.Occur.MUST);
Parece que' moduleFilter' debe cambiarse a 'idFilter'. De todos modos +1 por respuesta. – RyuuGan
Una explicación que encontré útil (de los Occur javadocs): Para una BooleanQuery sin cláusulas Occur.MUST, una o más cláusulas Occur.SHOULD deben coincidir con un documento para que coincida BooleanQuery. – Renaud
BooleanQuery ahora está en desuso.
Nueva sintaxis se parece a esto. (Debe == O, debe == Y)
val searchManager = Search.getSearchManager(cache)
val queryBuilder = searchManager.buildQueryBuilderForClass(classTag[T].runtimeClass).get()
val luceneQuery = queryBuilder.bool()
luceneQuery.should(new TermQuery(new Term("type", "lala"))
luceneQuery.createQuery()
Gracias ... fue tan exitosa su ayuda –
se podría simplificar a: 'contenido: "algún thext" y el ID :("A" o "B" O "c") ' –