我会尽量缩短这个时间。我们有一个 ColdFusion 站点,它使用 Solr 来索引数千个 PDF。部分索引信息也存储在数据库中,用于帮助过滤结果。搜索页面分为关键字字段、国家选择、出版物选择和地区选择。
现在,用于搜索 Solr 集合的唯一数据是关键字值。我们将最大行数限制为 250。因此,当用户输入一个相当常见的单词时,很多时候系统会返回超过 250 条记录,然后由数据库查询过滤掉。然而,在这些情况下,用户并没有看到他们应该看到的所有文档,因为像 BBQ 这样的常见词很容易出现在数千个文档中。
我一直在寻找如何为 Solr 创建更精致的 crireria 几个小时,但没有太多运气。我在 Adobe,https://helpx.adobe.com/coldfusion/developing-applications/accessing-and-using-data/solr-search-support/solr-search-examples.html找到了这个页面,但它没有显示任何复杂的例子。
我想做的是能够通过 cfsearch 关键字、国家、出版物和地区,以便文档列表尽可能小。问题之一是设置索引的人没有利用类别、类别树、主题甚至关键字字段(这些字段的大多数记录似乎是空的)。我试过使用 title:value 和 key:value 和 url:value 的字段语法;key 和 value 是我唯一可用的包含我正在寻找的标准的字段。更糟糕的是,用户可以在搜索之前设置多个标准。所以我基本上最终得到了一个我必须解析的值数组。
我还发现 Solr 默认为 OR 搜索,我需要一种方法来根据用户输入指定一个或另一个;parens 将是处理该问题的好方法。我不认为我想弄乱 xml 文件并可能更改每个人的默认 Solr 搜索。
有谁知道向 cfsearch/Solr 传递关键字(使用 + 号)、国家、出版物和地区值的方法?像这样:“+BBQ AND url:/#country#/* AND url:/#publication#/* AND url:/#region#/*”。