小编Nox*_*lle的帖子

基于一组常量搜索术语解析大量文本

我有一组搜索术语,如[ + dog - "jack russels"+"fox terrier" ],[ + cat + persian -tabby ].这些可能很长,每个学期可能有30个子术语.

我现在有一些在线新闻文章摘录,如[ "我的狐狸梗是世界上最可爱的狗......" ]和[ "有人见过我丢失的波斯猫吗?他失踪了......" ].它们不会太长,每个最多可能有500个字符.

在传统的搜索引擎中,人们期望大量的文章被预处理成索引,允许在搜索给定的"搜索术语"时加速,使用集合论/布尔逻辑将文章减少到仅与短语匹配的文章.但是,在这种情况下,我的搜索词的顺序是~10 ^ 5,我希望能够一次处理一篇文章,以查看该文章将匹配的所有搜索词集(即所有+条款都在文本中,而没有-条款.

我有一个可能的解决方案,使用两个地图(一个用于正面的子短语,一个用于负面的子短语),但我不认为它会非常有效.

一等奖将是一个解决这个问题的图书馆,二等奖是推动解决这个问题的正确方向.

亲切的问候,

java algorithm

5
推荐指数
1
解决办法
141
查看次数

将Log4J appender注入Grails应用程序

我正在制作一个简单的grails插件,它将作为我们公司各种项目日志记录的中心配置.一般的想法是,您只需将插件添加到项目中,它就会将各种appender注入根记录器.我首先使用Graylog2 appender测试它(如果我只是在Config.groovy中配置它,它就可以工作).这是我尝试过的代码(在BootStrap.groovy的init()中[在启动时执行]:

    def rL = Logger.rootLogger
    def layout = new PatternLayout(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n')

    Appender appender = new org.graylog2.log.GelfAppender(
            name:"gelf",
            graylogHost:"graylog2.ourcompany.com",
            extractStacktrace: true,
            addExtendedInformation: true,
            facility: "gelf-java",
            threshold: org.apache.log4j.Level.INFO,
            additionalFields: "{'runtime': 'grails', 'environment': 'dev', 'transport': 'gelf-java'}",
            layout: layout
    )
    rL.addAppender(appender)
Run Code Online (Sandbox Code Playgroud)

appender被正确实例化并附加到根记录器,这里是从rL.getAllAppenders().toList()输出的.每个{print it.toString()}:

org.codehaus.groovy.grails.plugins.log4j.appenders.GrailsConsoleAppender@7a054197
org.graylog2.log.GelfAppender@6f155f16
Run Code Online (Sandbox Code Playgroud)

因此,尽管将Appender添加到根记录器,并将错误级别的消息写入日志(并显示到默认的Console Logger),但它根本不会将消息发送到Graylog2(我已使用Wireshark检查了验证这一点).如果我只是在另一个项目的Config.groovy中设置值,这可以正常工作; 但显然这违背了这个插件的目的.

grails log4j

5
推荐指数
1
解决办法
779
查看次数

覆盖toString()导致grails域类中的空指针

因此,当我使用下面的方法覆盖toString()方法时(与我在几个项目中几乎每个其他Domain类中使用的方法相同),在创建此对象的实例时会导致空指针.删除toString()可修复此错误.不知道为什么.:(

class Vertical {

    String name

    static constraints = {
        name(nullable: true)
    }

    @Override
    String toString() {
        return name
    }
}
Run Code Online (Sandbox Code Playgroud)

grails nullpointerexception

1
推荐指数
1
解决办法
1461
查看次数

Postgresql 解除了序数和所见时间的嵌套

假设我有一个可能重复的字符串数组

[a,a,b,c,a,b,c,d]

我想取消嵌套数组,以便可以获得索引,以及该元素在数组中取消嵌套的次数。我的所有数组都相对较短(25 个元素或更少)。

我的预期输出是:

a, 1, 1
a, 2, 2
b, 3, 1
c, 4, 1
a, 5, 3
b, 6, 2
c, 7, 2
d, 8, 1
Run Code Online (Sandbox Code Playgroud)

我可以使用 轻松完成前两位 left join lateral unnest(arr) with ordinality as a(element, idx),但我也想要 times_seen 部分。

arrays postgresql

1
推荐指数
1
解决办法
3092
查看次数