我需要为solr分析器阶段编写一个自定义过滤器。这个想法是首先用空格标记输入的业务名称,然后应用一组过滤器来进行小写、模式替换和删除停止词。在这些筛选之后,我希望将所有令牌合并(串联)到一个令牌中,然后应用NGramFilterFactory从令牌生成n个Grams。
我想要组合所有的令牌(最初从业务名称生成)的原因是,我不会错过solr中索引的令牌(在NGramFilter中长度小于N),而且用户在输入业务名称时可能没有插入适当的空格。请让我知道更多的澄清。
我试图为相同的自定义过滤器编写一个,但这是不正常的工作,我能够理解它的行为。
当我查询名称“Apple”时,它会返回n1个结果。
当我查询名称“computers”时,它返回n2个结果。
java prettyprint-override">public class ConcatFilter extends TokenFilter {
private CharTermAttribute charTermAtt;
private StringBuilder builder = new StringBuilder();
public ConcatFilter(TokenStream input)
{
super(input);
charTermAtt = addAttribute(CharTermAttribute.class);
}
@Override
public boolean incrementToken() throws IOException {
if(input.incrementToken()) {
int len = charTermAtt.length();
char buffer[] = charTermAtt.buffer();
builder.append(buffer, 0, len);
char[] newBuffer = builder.toString().toCharArray();
int newLength = builder.length();
charTermAtt.setEmpty();
charTermAtt.copyBuffer(newBuffer, 0, newLength);
charTermAtt.setLength(newLength);
return true;
} else {
builder.delete(0, builder.length());
return false;
}
}
}
我已经编写了连接单词过滤器,并将补丁提交到solr社区。任何面临同样问题的人都可以在这里找到它:ConcatenateWordsFilter
我有一个ADFS 4.0 OpenId连接设置,应用程序组为“Web浏览器访问Web应用程序”。我使用隐式流,能够从我的web应用程序成功登录,接收id_令牌并访问_令牌。 接下来,我在从wep应用程序发送到应用编程接口服务器的请求中使用访问令牌。我想做的是自定义访问令牌格式——添加额外的参数,因为默认情况下我只有: aud、iss、iat、exp、apptype、appid、Authmethod
我已经阅读了这个问题的公认答案,并创建了一个自定义令牌、过滤器和身份验证提供程序。 问题: 当我尝试“获取/登录”时: null 最后,安全配置:
存储在Django模型中的元素如下 示例数据如下: . 结果:找到对象- 结果:找到对象- 结果:找到对象- 结果:未找到对象 如何使用过滤器和正则表达式进行这些查询?
下面是过滤器的外观。 对于WebSecurityConfigurerAdapter#configure(webSecurityWeb)web.忽略()中包含的路径,我希望该筛选器不会像Spring Security筛选器链的其余部分一样激发。 下面是它的样子 我希望在调用Spring Security链的其余部分时调用这个过滤器,并对web.igneration()中的路径忽略这个过滤器,就像Sp
我对Lucene是新来的。我试图有自定义属性的令牌。我能够获得分配给令牌的属性。然而,我意识到我们需要为我的每个属性大致有3个文件(接口类扩展属性,类扩展属性Impl和一个类扩展标记过滤器)? 我可能有大约50个属性需要分配。每个属性必须有3个文件吗?这大约是150个文件。