我想对多个关键字的所有字段执行solr查询。例如,我想搜索单词“dog”和单词“cat”。
到目前为止,我尝试过这样的事情:
q=dog cat
或类似的东西:
q=dog,cat
但是,我认为我的查询实际上是在执行OR而不是AND。
答案 0 :(得分:0)
您的问题是关于默认运算符(AND / OR),您想要搜索"所有字段"。
对于大多数解析器,您可以使用参数q.op
更改默认解析器(例如,Standard Query Parser和DisMax Query Parser),或者您可以使用schema.xml中的defaultOperator或Schema API。
请注意,您只会搜索default field
。
如果您想搜索"所有字段"您必须将copy所有字段都设置为一个字段(并将其用作默认字段),或者必须在DisMax qf-parameter中列出所有字段。 结果将不一样:在第二种情况下,您的" AND" -Search必须匹配其中一个字段(使用其特殊的标记化器),在第一个每个术语中可以在不同的字段中匹配(因为最后所有术语都在默认字段中。