我想动态地向用户显示哪个字段与发送给Solr的查询匹配.例如,如果我有一份文件 document field1: "yay" field2: "nay" dynamic_field_hurr_*: one: "yay" two: "nay" 我查询“yay”,我是否有可能知道yay是在f
document field1: "yay" field2: "nay" dynamic_field_hurr_*: one: "yay" two: "nay"
我查询“yay”,我是否有可能知道yay是在field1和dynamic_field_hurr_one中找到的?
我觉得我已经浏览了整个文档,并认为我应该使用突出显示,但我不能让它在动态字段上工作.在正常的字段上它工作正常!
一点背景:我正在使用Solr.Net,在课堂上我映射到我的文档,我有一个IDictionary< string,string>动态添加其他信息.经过一些阅读后,我想到了映射到动态字段的字典,除了突出显示外,它完美地运行.
我还尝试将动态字段中的所有数据复制到文本字段中,但我认为没有办法复制“实际字段名称”?我只能让Solr复制该值,我认为这是合理的.
有任何想法吗?
有一种间接的方法可以使用一个非常有趣的工具,突出显示.使用默认的solr模式执行此操作以了解解决方案:
http://localhost:8983/solr/collection1/select?q=iPod&wt=xml&indent=true&hl=on&hl.fl=name,description
看着 :
<lst name="highlighting"> <lst name="IW-02"> <arr name="name"> <str><em>iPod</em> & <em>iPod</em> Mini USB 2.0 Cable</str> </arr> </lst> <lst name="F8V7067-APL-KIT"> <arr name="name"> <str>Belkin Mobile Power Cord for <em>iPod</em> w/ Dock</str> </arr> </lst> <lst name="MA147LL/A"> <arr name="name"> <str> Apple 60 GB <em>iPod</em> with Video Playback Black </str> </arr> </lst> </lst>
所以,在这里你有匹配的字段.您可以选择忽略实际突出显示部分的其余部分,并仅使用与您的目的匹配的字段名称.
所以你会在你的情况下要求这样的东西& hl = on& hl.fl = dynamic_field_hurr_one,dynamic_field_hurr_two