【问题标题】:Solr queries stored within Solr field存储在 Solr 字段中的 Solr 查询
【发布时间】:2026-02-05 07:50:01
【问题描述】:

我有一组由存储在 SOLR 字段中的客户需求定义的关键字。我还有源源不断的句子进入系统。

通过使用句子作为关键字的查询,我能够找到与关键字匹配的句子。这运作良好,我很高兴。我所做的基本上是反转通常使用 SOLR 的方式,将查询存储在 Solr 中并将文本作为查询传递。

现在我希望能够将在字段中仅包含关键字的想法扩展到在字段中具有更完整的 SOLR 查询。这样做将允许邻近搜索等。但是,当然,这就是生活变得尴尬的地方。将 SOLR 查询运算符放入字段中将不起作用,因为它们需要转义。

有谁知道是否可以使用 SOLR“查询”功能或编写一个启用此类功能的 java 类?还是这个想法在 SOLR 风中吹得太过了?

提前致谢。

【问题讨论】:

    标签: solr


    【解决方案1】:

    我会用 ElasticSearch 检查 percolate api。使用这个 API 肯定比在 Solr 中编写自己的 API 更容易。

    【讨论】:

      【解决方案2】:

      ES 对此进行了渗透 - 对于 Solr,您通常会将文档作为单个文档索引到基于内存的核心/索引中,然后针对该文档运行查询(这是 ES 至少在内部使用的操作,IIRC) .

      【讨论】:

      • 我在 es 中发现了 percolate 功能,并使用基于内存的内核对其进行了模仿。只需更多地了解 lucene 的工作原理,并不需要太多的知识。使用这种技术,额外的 cpu 负载
      • 我使用下面的教程来实现我的代码。第一次工作差不多。 DIY Percolator - SlideShare