我有一个从PDF文件目录生成的solr索引,以及与pdf文件本身相关的相应元数据字段。不过,我想为我的用户提供一个选项,在查询中排除从PDF中索引的任何文本。这样查询结果将基于元数据字段而不是由pdf文件中的大量文本所偏向。
我想过可能有两个索引(核心) - 一个带有索引的pdf文件,一个没有。
还有其他办法吗?
答案 0 :(得分:1)
听起来你正在对默认字段进行常规搜索。这意味着你有很多copyField指令(或只有一个copyField * - >文本),其中包括PDF内容字段。
您可以创建第二个目标并复制除PDF内容字段之外的所有内容。这样,用户可以搜索或另一个组合字段。
但请记住,这会根据目标字段的分析链解析所有内容。因此,带有源字段列表的eDisMax可能是更好的方法。并且,请记住,您可以使用多个请求处理程序(如“select”)并在那里定义不同的默认参数。这通常会使客户端代码更容易。
答案 1 :(得分:0)
您不需要使用2个单独的索引。您可以使用edismax
解析器并在查询时指定qf
参数。这将有助于确定搜索的字段。
答案 2 :(得分:0)
您可以查看field aliases
如果您有3个索引字段
然后你可以创建两个字段别名
使用字段别名优于qf的一个优点是,如果您的用户拥有q=quicksearch:value等书签,则可以更改quicksearch的别名,而不会影响用户的书签。