有没有办法注释solr日志?

时间:2013-07-25 16:51:24

标签: logging solr

我希望我的代码的不同部分在我的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字段,因此猜测它是一个可忽略不计的性能损失),并且它可以达到目的,但是我会这样做。希望那里有更好的方式。

1 个答案:

答案 0 :(得分:0)

我可以看到几个解决方案:

  1. 只需添加未在任何地方使用的额外查询参数。类似的东西:

    &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
    

    (我看起来不太好但你可以从日志中过滤掉你需要的东西)

  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
    
  3. 编写非常小的自定义插件,可以尝试向日志添加额外信息(可能基于选项1中的信息)

  4. 选项1和2不会产生任何性能后果,并且非常容易实现。选项3可能会花费您一些时间来实现和执行(可能每个查询少于1毫秒)