当前位置: 首页 > 知识库问答 >
问题:

在elasticsearch查询中配置搜索项的标记

商业
2023-03-14

我正在对elasticsearch(1.7)进行常规搜索,使用对许多指定字段的匹配查询。这是在一个java应用程序中完成的,只有一个框可以输入搜索项。允许各种搜索选项(例如,用引号包围短语来查找阶段,而不是成分词)。这意味着我正在进行全面的测试搜索。

一切都很好,除了我的帐户裁判有正斜杠在他们和一个帐户裁判的搜索产生成千上万的结果。如果我用引号包围帐户引用,我就得到了我想要的结果。我假设AC/1234/A01的帐户引用正在搜索[AC或1234或A01]。最初我认为这是一个regex问题,但我不认为它是。

我刚才也提出了一个类似的问题,有一个我认为有效的建议是在查询中添加“analyzer”:“keyword”(在我的代码中)

queryStringQueryBuilder.analyzer("keyword")

)。

这样做的问题是,搜索的许多其他字段都不是关键字,这使许多灵活的搜索选项停止工作(大小写敏感等)。我假设这在文本搜索中已经变成了完全匹配的东西。

共有1个答案

秦承安
2023-03-14

最简单的方法是替换/,使用一些不会导致单词分成两个标记,但不会干扰其他术语(_.'应该起作用)的字符,或者使用映射字符筛选器完全删除/。这里有一个类似的例子https://stackoverflow.com/a/23640832/783043

 类似资料:
  • 这是我得到的响应输出- 2018-11-20 18:25:34+0530:>{“查询”:{“布尔”:{“必须”:[{“匹配”:{“状态”:“活动”}},{“匹配”:{“is_published”:true}},{“匹配”:{“payed”:true}},{“match”:{“adverse_type”:“sell”}}]}},“排序”:[{“updated_at”:{“order”:“desc”}

  • 我需要在我的应用程序中添加搜索栏。搜索将按名和姓进行搜索。我不知道如何编写elastcsearch查询。名字和姓氏是两个分开的字段。我是个新手。 例:名:约翰,姓:约书亚 搜索栏字符串为上层结果:约翰·乔·约翰·乔·约翰·乔·乔·约翰·约书亚·约翰·约书亚·乔...

  • 我是Elasticsearch的新手,我面临一个问题。我的任务是搜索一组文档。例如,我有这样结构的数据: 但是困难的是,我如何获取所有带有project_id=abc的文档,然后通过与关键字“测试”匹配的任何其他字段(代码、名称、状态)搜索它们(例如)。我如何在Elasticsearch查询中做到这一点,请帮助我! 谢谢

  • 我阅读了一些关于查询上下文和过滤上下文的文章和文档,了解到如果你不需要进行全文搜索或评分,最好使用过滤上下文。就我而言,我想返回包含ID的日志……所以我意识到我应该只使用过滤上下文而不是查询上下文。除了全文搜索或评分之外,是否有一条硬基线来定义何时应该使用其中一个? 所以我从我最初的DSL查询搜索cmd: 到过滤器上下文: 因为,我想使用NEST来执行我采用这种方法的查询搜索。 这是使用NEST进

  • 我有一个endpoint,我正在将它代理到ElasticSearchAPI中,以进行简单的用户搜索。 有关这些参数的一些详细信息如下 所有参数都是可选的 昵称可以作为全文搜索进行搜索(即'myUser'将返回'myUsername') 电子邮件必须完全匹配 名称可以搜索为每个令牌的全文搜索(即'john'将返回'John Smith') ElasticSearch调用应将参数集体视为AND'd。

  • 这个问题类似于我的另一个问题,在这里输入Val回答的链接描述。 我有一个包含3个文档的索引。 当我搜索“Ann”时,我希望elastic返回所有这3个文档(因为它们在一定程度上都与术语“Ann”匹配)。但是,我希望符晓薇·雷具有较低的分数(相关性排名),因为搜索词“Ann”在本文档中出现的位置比该词在其他两个文档中出现的位置要晚。 这是我的索引设置… 以下查询返回了预期的文档,但Leanne Ra