小编Yer*_*yan的帖子

elasticsearch模糊匹配max_expansions&min_similarity

我在我的项目中使用模糊匹配主要是为了找到相同名称的拼写错误和拼写错误.我需要准确理解弹性搜索的模糊匹配如何工作以及它如何使用标题中提到的2个参数.

据我所知,min_similarity是查询字符串与数据库中字符串匹配的百分比.我找不到如何计算此值的确切描述.

据我所知,max_expansions是应该执行搜索的Levenshtein距离.如果这实际上是Levenshtein距离,它将是我理想的解决方案.无论如何,它不起作用,例如我有"Samvel"这个词

queryStr      max_expansions         matches?
samvel        0                      Should not be 0. error (but levenshtein distance   can be 0!)
samvel        1                      Yes
samvvel       1                      Yes
samvvell      1                      Yes (but it shouldn't have)
samvelll      1                      Yes (but it shouldn't have)
saamvelll     1                      No (but for some weird reason it matches with Samvelian)
saamvelll     anything bigger than 1 No
Run Code Online (Sandbox Code Playgroud)

文档说的是我实际上不理解的东西:

Add max_expansions to the fuzzy query allowing to control the maximum number 
of terms to match. Default to …
Run Code Online (Sandbox Code Playgroud)

fuzzy-search fuzzy-logic fuzzy-comparison elasticsearch

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

java方法返回Class <T的实例扩展Somethng>

我有这个代码:

public <T extends Scrapper> Class<T> getScrapper() {
    return MyScrapper.class;
}
Run Code Online (Sandbox Code Playgroud)

MyScrapper是一个实现Scrapper接口的类.为什么这不起作用?你在JDK7中得到以下错误:

error: incompatible types
required: Class<T>
found:    Class<MyScrapper>
where T is a type-variable:
T extends Scrapper declared in method <T>getScrapper()
Run Code Online (Sandbox Code Playgroud)

PS我老实说试着整整30-40分钟.

更新:如果我声明方法是public Class<? extends Scrapper> getScrapper() {有效的.但我仍然不明白为什么原始声明没有编译.它出什么问题了?

java generics java-7

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

Spring RedirectView在不同的tomcat安装中表现不同

我有2个tomcat实例.两者都在代理apache httpds.我在Spring控制器中的代码如下所示:

@RequestMapping(value = "/doSuperSexyStuff", method = RequestMethod.GET)
public String viewSuperSexyStuff() {
    return "redirect:/mySuperSexyStuff";
}
Run Code Online (Sandbox Code Playgroud)

在我在Windows上的第一次tomcat安装中,我将somedomain1.dev重定向到http://localhost:8080/myapp,一切都运行良好.重定向去http://somedomain1.dev/mySuperSexyStuff

在另一个tomcat安装(在Linux上),重定向相对于上下文路径工作,用户最终http://somedomain2.dev/myapp/mySuperSexyStuff显然是错误的.

我该怎么做才能让spring忽略上下文路径,只是将用户重定向到"所属"的位置?

我的应用程序中的所有URL都是绝对的(包括jsps中的链接,重定向URL和使用链接的所有位置).我想这不是正确的做法:如果我必须实施网站的HTTPS版本,我将遇到麻烦.所以,如果你认为我必须在我的方法中从根本上改变一些事情,请指出我正确的方向.

java redirect tomcat servlets spring-mvc

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

Keycloak,客户端之间共享资源

我们正在开发一个具有基于微服务架构的应用程序,其中用户可以是组织的成员,并且在每个组织内,他们可能具有基于资源的访问限制。例如,一位招聘人员是该平台上多个组织的成员;在组织A中,他们可以看到所有职位发布和面试官的列表,而在组织B中,他们只能看到直接允许他们查看的职位发布。

就结构而言,这变成了这样: 在此输入图像描述

所有这一切似乎都可以通过 Keycloak 轻松完成,我们创建机密客户端(每个微服务一个)并对它们启用资源管理。然而,在很多情况下,不同的微服务(即Keycloak客户端)需要验证用户对同一资源的访问范围。一个例子是这样的设置,我们有 2 个微服务,一个用于发布和管理职位公告,另一个用于管理申请和面试,即job-managerapplication-manager。现在,当提交新的申请或面试官尝试访问应用程序时,应用程序经理必须确保用户有权访问在职位经理Keycloak 客户端中配置的职位发布(资源)。我认为 Keycloak 不支持这一点。

就规模而言,我们谈论的是 X00k 用户、组织用户连接数的 4-5 倍以及数千万资源。因此,为了最大限度地减少我们在 Keycloak 中创建的对象数量,我们决定在存储 JSON 结构的资源上使用属性。

那么,一个微服务如何验证用户对另一个微服务对资源管理器的访问?

authorization oauth-2.0 openid-connect microservices keycloak

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

在ElasticSearch中重新索引索引以更改分片数

我需要更改索引中的分片数量.索引非常大,在我对结果感到满意之前,为了测试目的,我可能需要更改配置10-15次.有没有开箱即用的工具这种功能?或者最简单的方法是什么?

indexing elasticsearch

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

在批量插入期间缓存oracle函数调用

当插入批量行并使用函数调用作为列值之一时,我从函数中获得每10-11行完全相同的值.该函数实际上生成UUID值并返回唯一结果.如果我用插入语句中的函数调用替换函数的实际代码,它永远不会重复.

所以我从中得出的结论是oracle实际上缓存了函数的结果,并且每插入10-11行就只调用一次.我怎么能改变这种行为?

我正在调用的函数来自http://www.oracle-base.com/articles/9i/UUID9i.php:

create or replace
FUNCTION        new_uuid RETURN VARCHAR2 AS
  l_seed        BINARY_INTEGER;
  l_random_num  NUMBER(5);
  l_date        VARCHAR2(25);
  l_random      VARCHAR2(4);
  l_ip_address  VARCHAR2(12);
BEGIN
  l_seed := TO_NUMBER(TO_CHAR(SYSDATE,'YYYYDDMMSS'));
  DBMS_RANDOM.initialize (val => l_seed);
  l_random_num := TRUNC(DBMS_RANDOM.value(low => 1, high => 65535));
  DBMS_RANDOM.terminate;

  l_date       := conversion_api.to_hex(TO_NUMBER(TO_CHAR(SYSTIMESTAMP,'FFSSMIHH24DDMMYYYY')));
  l_random     := RPAD(conversion_api.to_hex(l_random_num), 4, '0');
  l_ip_address := conversion_api.to_hex(TO_NUMBER(REPLACE(NVL(SYS_CONTEXT('USERENV','IP_ADDRESS'), '123.123.123.123'), '.', '')));

  RETURN SUBSTR(l_date, 1, 8)                     || '-' ||
         SUBSTR(l_date, 9, 4)                     || '-' ||
         SUBSTR(l_date, 13, 4)                    || '-' ||
         RPAD(SUBSTR(l_date, 17), 4, '0')         || '-' || …
Run Code Online (Sandbox Code Playgroud)

sql oracle caching

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

oracle命令运行速度非常慢

我正在进行类似这样的查询,需要6秒才能完成:

select * 
from ( select aaa."ID" 
      from "aaa"  
      where aaa."DELETED" is null 
      order by aaa."CREATED" desc ) 
where rownum <= 15;
Run Code Online (Sandbox Code Playgroud)

我的表中有大约160万条记录,我尝试在已删除的列和已创建的列中添加单独的索引,我尝试添加包含已创建和已删除的colunms的索引,并尝试创建相同的索引以不同的顺序.似乎没有任何帮助.我该怎么做才能加快速度呢?

我无法更改查询因为它是由hibernate生成的

编辑:即使没有aaa."DELETED" is null查询运行速度很慢.

编辑2: 查询计划

编辑3:添加我的索引定义.老实说,我不知道大多数这些数字是什么意思,我使用sqldeveloper来创建索引.甚至不知道每个索引有如此多的配置选项,我现在将查看文档.

CREATE INDEX "aaa"."aaa_CREATED_ASC" ON "aaa"."aaa"
  (
    "CREATED"
  )
  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE
  (
    INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
  )
  TABLESPACE "SYSTEM" ;
CREATE INDEX "aaa"."aaa_CREATED_DESC" ON "aaa"."aaa"
  (
    "CREATED" DESC
  )
  PCTFREE 10 INITRANS …
Run Code Online (Sandbox Code Playgroud)

oracle hibernate sql-order-by sql-optimization

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