我正在尝试使用Solr并尝试获取查询以仅检索所有提供的令牌匹配的文档。
例如,假设我有一个名为 data 的字段,当索引时,它使用PatternTokenizer在分隔字符上拆分传入字符串,例如: '/'。对于输入字符串“Foo / Bar / Baz”,我希望获得三个令牌(如果我对文档的理解是正确的!)。我最后添加了一些文档:
Foo / Bar / Baz ==> Foo,Bar,Baz
Foo / Far / Faz ==> Foo,Far,Faz
Boo / Bar / Baz ==> Boo,Bar,Baz
当我来查询这个字段时,我得到的结果我并不是很期待。使用查询:
+data:Foo/Bar
我希望这可以匹配包含两者 Foo和Bar的文档,但是它会返回至少包含Foo或Bar的文档,并对两个术语都更高的文档进行评分。除了改变查询以使其类似于:
+data:Foo +data:Bar
有没有办法改变行为,以便不是匹配我的所有3个示例文档,而只匹配一个?
该实验使用Solr 4.0的夜间构建完成。
由于
答案 0 :(得分:3)
您可以在schema.xml中将默认运算符设置为AND,这将使所有查询成为AND搜索。
http://wiki.apache.org/solr/SchemaXml#Default_query_parser_operator
您还可以通过将q.op = AND添加到solr网址来更改每个查询。