Ich habe ein Solr-Schema, das ein „url“ Feld hat:Warum kann ich SolrJ nicht nach einer URL abfragen?
<fieldType name="url" class="solr.TextField"
positionIncrementGap="100">
</fieldType>
<fields>
<field name="id" type="string" stored="true" indexed="true"/>
<field name="url" type="url" stored="true" indexed="false"/>
<field name="chunkNum" type="long" stored="true" indexed="false"/>
<field name="origScore" type="float" stored="true" indexed="true"/>
<field name="concept" type="string" stored="true" indexed="true"/>
<field name="text" type="text" stored="true" indexed="true"
required="true"/>
<field name="title" type="text" stored="true" indexed="true"/>
<field name="origDoctype" type="string" stored="true" indexed="true"/>
<field name="keywords" type="string" stored="true" indexed="true"/>
</fields>
<uniqueKey>id</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
ich SolrInputDocuments mit allen Feldern hinzufügen und abfragen sie das Textfeld mit Rücken und/oder mit einem Filter-Abfrage auf „Konzept“. Aber wenn ich versuche, eine bestimmte URL abzufragen, bekomme ich keine Ergebnisse. Mein Code sieht so aus:
SolrQuery query = new SolrQuery();
query.setQuery("url:" + ClientUtils.escapeQueryChars(url));
//query.setQuery("*:*");
//query.addFilterQuery("url:" + ClientUtils.escapeQueryChars(url));
List<Chunk> retCode = null;
try
{
QueryResponse resp = solrServer.query(query);
SolrDocumentList docs = resp.getResults();
retCode = new ArrayList<Chunk>(docs.size());
for (SolrDocument doc : docs)
{
LOG.debug("got doc " + doc);
Chunk chunk = new Chunk(doc);
retCode.add(chunk);
}
}
catch (SolrServerException e)
{
LOG.error("caught a server exception", e);
}
return retCode;
I mit und ohne die ClientUtils.escapeQueryChars habe versucht, und ich habe versucht, eine Abfrage von „url:“ verwenden oder eine Filterabfrage auf URL. Ich bekomme nie etwas zurück. Irgendwelche Hinweise?
In der Tat können Sie nicht auf einem nicht indizierten Feld suchen :) – jeje