example - solr vs elasticsearch
SolrJ Query (4)
Podrías hacer algo como:
SolrQuery solrQuery = new SolrQuery().setQuery("myField:id1 OR myField:id2 OR myField:id3");
QueryResponse rsp = server.query(solrQuery);
o:
SolrQuery solrQuery = new SolrQuery().setQuery("myField:(id1 OR id2 OR id3)");
QueryResponse rsp = server.query(solrQuery);
Hola a todos,
Tengo que consultar múltiples valores en un índice (como una consulta IN (id1, id2, id3) sql) usando SolrJ, en otras palabras, quiero recuperar documentos que coincidan con un conjunto de valores.
Como solrj api está documentado en detalle, espero que alguien pueda ayudarme
Saludos
En el archivo de definición de esquema conf / schema.xml, puede especificar el operador predeterminado, asegúrese de que sea un OR:
<solrQueryParser defaultOperator="OR"/>
Luego puede separar las palabras por espacios en su consulta y esto dará lugar a una O de las palabras:
solrQuery.setQuery("myField:(id1 id2 id3)")
Lo he intentado y en Solr 5
parece funcionar bien:
String mQueryString="term:business OR term:/"information security/"";
SolrQuery query = new SolrQuery();
query.setQuery(mQueryString);
Buen día ,
Podrías hacer eso por 2 vías
1- Usando OR como separador entre valores, podemos usar StringUtils para que sea más fácil ver a continuación
Set<String> pdfFamilies = new HashSet<String>();
String familyIdsString = StringUtils.join(pdfFamilies , ''OR'');
solrQuery = new SolrQuery("FAM_ID: ( " + familyIdsString + " )");
2-Usando SPACE como separador entre valores verifique a continuación
Set<String> pdfFamilies = new HashSet<String>();
String familyIdsString = StringUtils.join(pdfFamilies , '' '');
solrQuery = new SolrQuery("FAM_ID: ( " + familyIdsString + " )");