我希望我的代码的不同部分在我的Solr日志中进行注释,以便我知道代码的哪些部分正在生成哪些查询。
目前的日志行如下:
信息:[collection1] web应用= / solr的路径= /选择/ PARAMS = {FQ = dateFiled:2007-01-01T00:00:00Z + TO + 2007-12-31T00:00:00Z&安培; FQ = status:Precedential& fq = westCite:" 509 + F.3d + 173"} hits = 0 status = 0 QTime = 2
我更喜欢它说的话:
信息:[collection1] web应用= / solr的路径= /选择/ PARAMS = {FQ = dateFiled:2007-01-01T00:00:00Z + TO + 2007-12-31T00:00:00Z&安培; FQ = status:Precedential& fq = westCite:" 509 + F.3d + 173"} hits = 0 status = 0 QTime = 2 Source = Scraper
信息:[collection1] web应用= / solr的路径= /选择/ PARAMS = {FQ = dateFiled:2007-01-01T00:00:00Z + TO + 2007-12-31T00:00:00Z&安培; FQ = status:Precedential& fq = westCite:" 509 + F.3d + 173"} hits = 0 status = 0 QTime = 2 Source = user-query
或者那些东西。
我想我可以通过在查询中使用否定来做到这一点,因此每个查询都有类似-source:scraper
的内容。这不应该对查询造成太大的影响(因为我缺少source
字段,因此猜测它是一个可忽略不计的性能损失),并且它可以达到目的,但是我会这样做。希望那里有更好的方式。
答案 0 :(得分:0)
我可以看到几个解决方案:
只需添加未在任何地方使用的额外查询参数。类似的东西:
&source=Scraper
&source=user-query
最终应该是:
INFO: [collection1] webapp=/solr path=/select/ params={fq=dateFiled:[2007-01-01T00:00:00Z+TO+2007-12-31T00:00:00Z]&fq=status:Precedential&fq=westCite:"509+F.3d+173"&source=Scraper} hits=0 status=0 QTime=2
INFO: [collection1] webapp=/solr path=/select/ params={fq=dateFiled:[2007-01-01T00:00:00Z+TO+2007-12-31T00:00:00Z]&fq=status:Precedential&fq=westCite:"509+F.3d+173"&source=user-query} hits=0 status=0 QTime=2
(我看起来不太好但你可以从日志中过滤掉你需要的东西)
设置不同的查询处理程序,一个用于Scraper,另一个用于用户查询。然后你的日志看起来像这样:
INFO: [collection1] webapp=/solr path=/scraper/ params={fq=dateFiled:[2007-01-01T00:00:00Z+TO+2007-12-31T00:00:00Z]&fq=status:Precedential&fq=westCite:"509+F.3d+173"} hits=0 status=0 QTime=2
INFO: [collection1] webapp=/solr path=/user-query/ params={fq=dateFiled:[2007-01-01T00:00:00Z+TO+2007-12-31T00:00:00Z]&fq=status:Precedential&fq=westCite:"509+F.3d+173"} hits=0 status=0 QTime=2
编写非常小的自定义插件,可以尝试向日志添加额外信息(可能基于选项1中的信息)
选项1和2不会产生任何性能后果,并且非常容易实现。选项3可能会花费您一些时间来实现和执行(可能每个查询少于1毫秒)