0

我希望我的代码的不同部分在我的 Solr 日志中进行注释,以便我知道代码的哪些部分正在生成哪些查询。

日志行当前如下所示:

信息:[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"} 点击=0 状态=0 QTime=2

我更喜欢它说的是:

信息:[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"} hits=0 status=0 QTime=2 Source=Scraper

信息:[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"} hits=0 status=0 QTime=2 Source=user-query

或类似的规定。

我想我可以通过在查询中使用否定来做到这一点,所以每个查询都有类似-source:scraper. 这不应该对查询产生太大影响(猜测这将是一个可以忽略不计的性能损失,因为我缺少一个source字段),它可以达到目的,但我希望有更好的方法。

4

1 回答 1

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 中的信息)

选项 1 和 2 不会对性能产生任何影响,而且它们非常容易实现。选项 3 可能会花费您一些时间来实现和执行(每个查询可能不到 1 毫秒)

于 2013-07-29T23:15:31.630 回答