diff --git a/KeywordSearch/release/solr/solr/conf/schema.xml b/KeywordSearch/release/solr/solr/conf/schema.xml index 7af3175de7..ecfb9e15d8 100644 --- a/KeywordSearch/release/solr/solr/conf/schema.xml +++ b/KeywordSearch/release/solr/solr/conf/schema.xml @@ -505,6 +505,8 @@ --> + + diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java index 54ce2c866d..43ef7d6292 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java @@ -54,6 +54,7 @@ import org.sleuthkit.datamodel.File; import org.sleuthkit.datamodel.FsContent; import org.sleuthkit.datamodel.LayoutFile; import org.sleuthkit.datamodel.ReadContentInputStream; +import org.sleuthkit.datamodel.TskCoreException; /** * Handles indexing files on a Solr core. @@ -217,6 +218,12 @@ public class Ingester { private Map getCommonFields(AbstractFile af) { Map params = new HashMap(); params.put(Server.Schema.ID.toString(), Long.toString(af.getId())); + try { + params.put(Server.Schema.IMAGE_ID.toString(), Long.toString(af.getImage().getId())); + } catch (TskCoreException ex) { + logger.log(Level.SEVERE, "Could not get image id to properly index the file " + af.getId()); + } + params.put(Server.Schema.FILE_NAME.toString(), af.getName()); return params; } @@ -239,6 +246,14 @@ public class Ingester { * @throws org.sleuthkit.autopsy.keywordsearch.Ingester.IngesterException */ private void ingest(ContentStream cs, Map fields, final long size) throws IngesterException { + + if (fields.get(Server.Schema.IMAGE_ID.toString()) == null) { + //skip the file, image id unknown + String msg = "Skipping indexing the file, unknown image id, for file: " + cs.getName(); + logger.log(Level.SEVERE, msg); + throw new IngesterException(msg); + } + SolrInputDocument updateDoc = new SolrInputDocument(); for (String key : fields.keySet()) { diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java index 4aa82fcf29..afff96cee8 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java @@ -69,6 +69,12 @@ public class Server { return "id"; } }, + IMAGE_ID { + @Override + public String toString() { + return "image_id"; + } + }, CONTENT { @Override public String toString() { diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermComponentQuery.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermComponentQuery.java index ebadddff60..89ed96d8f8 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermComponentQuery.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermComponentQuery.java @@ -56,7 +56,7 @@ public class TermComponentQuery implements KeywordSearchQuery { private Keyword keywordQuery = null; private KeywordQueryFilter filter = null; private String field = null; - private static int MAX_TERMS_RESULTS = 10000; + private static int MAX_TERMS_RESULTS = 20000; private static final boolean DEBUG = (Version.getBuildType() == Version.Type.DEVELOPMENT);