В вашем случае вы можете создать документ solr и зафиксировать его в solr.Примерно так:
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "123456");
document.addField("title", fileName);
document.addField("text", contentBuilder.toString());
solr.add(document);
solr.commit();
В вашем случае это поля personName, personRank и documentContent.Я предполагаю, что чтение файла CSV будет выполняться с вашей стороны, и вы получите имя документа, и вы уже знаете, где находится документ.
Как уже упоминалось, вы можете прочитать файл CSV, вы будетеданные для personName PersonRank напрямую.
Третий - это содержание документа поля.Поскольку вы получаете только имя файла документа, вы можете прочитать содержимое документа и передать его в документ solr в качестве третьего поля.
Я сделал для вас один вариант.Примерно так:
String urlString = "http://localhost:8983/solr/TestCore";
SolrClient solr = new HttpSolrClient.Builder(urlString).build();
StringBuilder contentBuilder = new StringBuilder();
try (Stream<String> stream = Files.lines(Paths.get("D:/LogFolder/IB4_buildViewSchema.txt"),
StandardCharsets.UTF_8)) {
stream.forEach(s -> contentBuilder.append(s).append("\n"));
} catch (IOException e) {
e.printStackTrace();
}
try {
File file = new File("D:/LogFolder/IB4_buildViewSchema.txt");
String fileName = file.getName();
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "123456");
document.addField("title", fileName);
document.addField("text", contentBuilder.toString());
solr.add(document);
solr.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
Это пойдет в итеративном режиме для всех данных CSV.
Проверьте, можете ли вы делать это пакетно, и вам нужно искать оптимизирующий кодтакже.Этот код не является полным доказательством решения вашей проблемы.
Я проверил, проиндексированы ли данные в solr, запросив их у solr на странице администрирования solr.Пожалуйста, обратитесь к изображению ниже:
![Solr Admin Page](https://i.stack.imgur.com/JGhCu.png)
Примечание. Я создаю проект maven и написал приведенный выше фрагмент кода.Если вы хотите, вы можете использовать ниже pom.xml для справки.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>solr</groupId>
<artifactId>TestSolr2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>TestSolr2</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-cell</artifactId>
<version>7.6.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>