J'ai la requête suivante que je pris de mon URLInterrogation dans solr
public static String query="pen&mq=pen&f=owners%5B%22abc%22%5D&f=application_type%5B%22cde%22%5D";
Je veux interroger solr en utilisant cette requête
CommonsHttpSolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr/");
server.setParser(new XMLResponseParser());
SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery(query);
QueryResponse qr =server.query(solrQuery);
SolrDocumentList sdl = qr.getResults();
System.out.println("Found: " + sdl.getNumFound());
J'ai vérifié ma requête dans le fichier logs tomcat et il est traduit comme
path=/select params={version=2&wt=javabin&q=pen%26mq%3Dpen%26f%3Downers%255B%2522abc%2522%255D%26f%3Dapplication_type%255B%2522cde%2522%255D`
et il me donne 0 résultat malgré 500 docs. J'ai essayé de décoder ma requête en utilisant
URLDecoder.decode(query,"UTF-8");
mais il a commencé à se plaindre de « [ » signes.
org.apache.lucene.queryParser.ParseException: Encountered " "]" "]
Comment dois-je interroger le serveur solr en utilisant cette requête? Est-il nécessaire d'analyser la requête et de prendre la valeur de chaque méthode filtre, puis utiliser
solrQuery.setFilterQueries()
. Quelqu'un peut-il m'aider s'il vous plait
est donc nécessaire pour moi d'analyser la chaîne de requête que j'ai pris de l'url – sparkle
Dans le cas de l'utilisation de la SolrJ, oui. Vous ne pouvez pas prendre une URL directe que vous avez construite à partir de (je suppose) la page Admin Solr et la coller dans SolrJ comme requête. Vous devez construire les mêmes paramètres en utilisant les méthodes SolrJ. Je vais répondre à tous vos paramètres dans la question. –