Hallo,
ich verwende Lucene die Lucene-core-3.3.0.jar und lucene-analyzers-3.0.2.jar und damit
durchsue ich meine CouchDB 1.0.1.
Meine CouchDocs sind nach dem Schema aufgebaut:
{
"doc_id" : "1223344",
"doc_type" : "user",
... usw.
"content" : { ... }
}
jetzt habe ich den Code zum durchsuchen:
der querystr ist irgendein Wort das ich an die Methode übergeben kann.
Das funktioniert auch wie gewünscht.
Jetzt möchte ich aber einen bestimmten Key in der Content Map (ich bezeichne die JSON
Parts in der {} Klammer immer als Map da mir mein Svenson parser das in ne Map parst)
z.B. Geschlecht nach dem SuchString "Mann" durchsuchen.
Wie kann ich tiefer in meinem CouchDoc suchen das mir Lucene nur Ergebnisse aus einem
speziellem Key anzeigt am besten wäre natürlich wenn das auch gehen würde das ich angeben kann:
"Content" (1.Key) -> "Profile" (2.Key) -> "Hobbys" == "Fahradfahren" und ich dann alle Docs bekomme
wo ein User in seinem Profil unter Hobbys Fahradfahren stehen hat.
Zur Zeit bekomm ich auch das Doc wenn direkt unter Content Fahradfahren steht.
Danke für Anregungen
ich verwende Lucene die Lucene-core-3.3.0.jar und lucene-analyzers-3.0.2.jar und damit
durchsue ich meine CouchDB 1.0.1.
Meine CouchDocs sind nach dem Schema aufgebaut:
{
"doc_id" : "1223344",
"doc_type" : "user",
... usw.
"content" : { ... }
}
jetzt habe ich den Code zum durchsuchen:
Java:
q = new QueryParser(Version.LUCENE_30, "content",
new GermanAnalyzer(Version.LUCENE_30)).parse(querystr);
int hitsPerPage = 10;
IndexSearcher searcher = new IndexSearcher(index, true);
TopScoreDocCollector collector = TopScoreDocCollector.create(hitsPerPage, true);
searcher.search(q, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
Das funktioniert auch wie gewünscht.
Jetzt möchte ich aber einen bestimmten Key in der Content Map (ich bezeichne die JSON
Parts in der {} Klammer immer als Map da mir mein Svenson parser das in ne Map parst)
z.B. Geschlecht nach dem SuchString "Mann" durchsuchen.
Wie kann ich tiefer in meinem CouchDoc suchen das mir Lucene nur Ergebnisse aus einem
speziellem Key anzeigt am besten wäre natürlich wenn das auch gehen würde das ich angeben kann:
"Content" (1.Key) -> "Profile" (2.Key) -> "Hobbys" == "Fahradfahren" und ich dann alle Docs bekomme
wo ein User in seinem Profil unter Hobbys Fahradfahren stehen hat.
Zur Zeit bekomm ich auch das Doc wenn direkt unter Content Fahradfahren steht.
Danke für Anregungen