我正在使用Solr 4.1。使用LukeRequest,我想获得包含特定字段数据的文档数量。该字段的名称类似于http://foo.org/bar/ baz
(请注意bar/
和baz
之间的空格)。当我访问http://127.0.0.1:8983/root/admin/luke
时,我会得到所有字段的列表,包括前面提到的字段。当我访问时
http://127.0.0.1:8983/root/admin/luke?fl=http://foo.org/bar/ baz
我没有点击。我已经尝试过对字符串进行url编码,转义斜杠,转义冒号,转义空间,使用+代替空格,以及我能想到的每种可能的反斜杠组合。在另一个StackOverflow问题field listing in solr with "fl" parameter for a field having space in between上发布的解决方案对我不起作用。
我真的只是在寻找一个肯定 - 没有答案,是否有任何文件对这个特定领域有价值,所以如果有更好的方法来做这个比LukeRequest,我也听到了。
答案 0 :(得分:2)
AFAIK,使用反斜杠转义特殊字符适用于值,而不适用于fl
或sort
等参数。
这answer on lucene mailing list也证实了我的想法。我想你不应该在字段名中有空格。
答案 1 :(得分:2)
我相信您可以使用TermsComponent完成同样的事情,因为它可以告诉您是否有与索引中的字段相关联的任何术语。但是,您需要在查询中指定字段名称,因此您将遇到类似的问题。当 Srikanth 回答时,最好不要在字段名称中使用空格或特殊字符。