我自己在 ReactJS 中编写了一个网站来搜索 PDF 文件(索引书籍)中的信息,我使用 Apache SOLR 搜索引擎对其进行了索引。
我在 React 中所做的本质上是:
queryValue = "(" + queryValueTerms.join(" OR ") + ")"
let query = "http://localhost:8983/solr/richText/select?q="
let queryElements = []
if(searchValue){
queryElements.push("text:" + queryValue)
}
...
fetch(query)
.then(res => res.json())
.then((result) =>{
setSearchResults(prepareResults(result.response.docs, result.highlighting))
setTotal(result.response.numFound)
setHasContent(result.response.numFound > 0)
})
这会导致 HTTP 调用:
http://localhost:8983/solr/richText/select?q=text:(chocolate%20OR%20cake)
由于这是 ReactJS 并且只是代码的一部分,所以它对 PHP 来说没有什么价值,但我只是想演示一下这种方法是什么。我猜你会使用 Curl 或其他什么。
索引本身我在一个单独的服务中使用 SolrJ,即我编写了一个相当小的 Java 程序,它利用 SOLR 自己的 SolrJ 库将 PDF 文件添加到 SOLR 索引。
如果您选择使用 Java 和 SolrJ 进行索引(对我来说这是最简单的选择,而且我之前几年没有使用过 Java),这里有一些有用的资源和示例,我在广泛搜索后收集了这些资源和示例以用于我自己的目的:
https://solr.apache.org/guide/8_5/using-solrj.html#using-solrj
我基本上复制了这里的内容:
https :
//lucidworks.com/post/indexing-with-solrj/ 并根据我的需要对其进行了调整。
提示:由于我对 Java 非常生疏,而不是设置类路径等,我的快速解决方案是将 SOLR 的 solrj 文件夹中的所有库复制到我的 Java 项目中。可能还有其他一些图书馆。可能很难看,但为我完成了这项工作。