问题标签 [shingles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
345 浏览

java - 如何同时使用同义词过滤器和瓦状过滤器?

我正在尝试使用带有shingle过滤器的过滤synonym器(请参见下面的代码)。这给了我输出:

强制执行

实施为

检查

考试测试

enforced与 和一起出现的词与和implemented相同。是否可以获得以下输出?testingexamination

强制执行

实施为

检查

用于检测

JSON 定义

0 投票
1 回答
1413 浏览

search - 弹性搜索词邻近度

在弹性搜索中,有没有办法增加文档中查询词彼此接近的文档的分数?这不仅是关于单词在一起的问题,因为这可以通过使用 shingles 来解决,而且关于在其间可能存在另一个不重要单词的邻近单词。

例子:

文件1:

文件 2:

询问:

所以我想为第一个文档获得更高的分数,而为第二个文档获得更低的分数。

如果这些词紧挨着,我会使用带状疱疹和两三个词标记。然而,这种方法并没有考虑到彼此接近的单词。

0 投票
1 回答
734 浏览

elasticsearch - 简单查询搜索与带状疱疹兼容吗?

我想知道是否可以将带状疱疹与简单查询字符串查询一起使用。我对相关字段的映射如下所示:

分析器和过滤器定义如下:

我正在执行以下搜索:

现在,我有一个带有 text_2 = 的文档small red porsches。由于我使用的是 AND 运算符,我希望我的文档不匹配,因为上面的查询应该产生一个“porsches small red”的瓦片,这是一个不同的顺序。但是,当我查看匹配说明时,我只看到单个单词标记“red”“small”“porsche”,当然匹配。

SQS 与带状疱疹不兼容吗?

0 投票
0 回答
292 浏览

search - Solr MultiPhraseQuery 未返回正确结果

我在为子字符串创建 Solr 搜索时遇到问题。例如,当用户搜索“Alfa Romeo Land Car”时,我只想匹配完整的品牌(只匹配“Alfa Romeo”,而不是“Land Rover”)。我尝试这样做的方法是从我的查询中创建带状疱疹,然后尝试与我的“汽车品牌”Solr 核心进行完全匹配。

因此,如果用户搜索“AB C”,我想获得带状疱疹 [A, AB, ABC, B, BC, C]。

但是当我使用下面的 Solr 配置时,当我搜索“AB C”(使用 EDisMax 或标准查询解析器)时,Solr 什么也不返回,但如果搜索“ABC”,我会得到匹配结果“ABC”。

这是我的 schema.xml 文件:

以下是我的 Solr 核心中的文档:

在 Solr 管理网页中,如果我转到“模式浏览器”,然后选择有问题的字段,然后按“加载术语信息”,我可以看到以下索引术语:

当我搜索“AB C”时,我想要以下带状疱疹 [ABC AB BC ABC] 但从调试查询中我得到:

我认为问题可能与MultiPhraseQuery有关。它创建了看似正确的带状疱疹,但似乎 Solr 不使用这些字符串进行搜索。有人知道我错过了什么吗?

非常感谢提前

0 投票
2 回答
936 浏览

solr - 如何将多个 solr 令牌连接成一个

在 Solr 中,当使用 solr.ShingleFilterFactory 合并令牌时,它可能会根据 min/maxShingleSize 和要合并的令牌生成多个 Shingle。因此,搜索失败。如何将多个令牌合并为一个以便我的搜索工作。这是我的设置:

这是查询 name_ngram 的调试输出:“our G20 9NS”

提前感谢,

0 投票
0 回答
305 浏览

elasticsearch - Elasticsearch 能否返回“成功”的模糊带状疱疹?

TL;博士

是否可以让 Elasticsearch 在模糊查询中返回匹配的输入-shingle 以及匹配的文档?

例子:

假设我有一个带状疱疹:

该木瓦用于自定义搜索分析器:

索引被分析为关键字,如下所示:

文件看起来像这样:

我们这样查询:

这将使用我们的 fulltext_shingle-analyzer 拆分查询,并将模糊度 1 应用于 shingle “John Smit”等。Elasticsearch 然后返回包含“John Smith”的文档,因为 Levenshtein-Distance 等于 1。

现在,是否可以让 elasticsearch 在匹配文档旁边返回模糊测试之前使用的 input-shingle,即“John Smit”?

我唯一能想到的就是从根本上反转查询,即在启用带状疱疹的情况下索引查询文档,然后以相同的模糊性查询原始输出(“John Smith”)。但这对我来说似乎是一个非常容易出错和浪费资源的麻烦。

0 投票
1 回答
330 浏览

solr - Solr Shingle 在调试查询中不可见

我正在尝试使用 Solr 在用户搜索中查找完全匹配的类别(e.g. "skinny jeans" in "blue skinny jeans")。我正在使用以下类型定义:

该类型将索引类别而不进行标记,仅用下划线替换空格。但它将标记化查询并将它们组合在一起(带下划线)。

我想要做的是将查询带状疱疹与索引类别相匹配。在 Solr 分析页面中,我可以看到空格/下划线替换对索引和查询都有效,并且我可以看到查询被正确拼接(下面的屏幕截图):

成功修改索引的空白,并在查询中生成 shingle

我的问题是,在 Solr 查询页面中,我看不到正在生成带状疱疹,因此我认为“紧身牛仔裤”类别不匹配,但“牛仔裤”类别匹配:(

这是调试输出:

很明显,parsedquery 参数不显示 shingled 查询。我需要做什么才能完成将查询带状疱疹与索引值匹配的过程?我觉得我非常接近解决这个问题。任何建议表示赞赏!

0 投票
1 回答
1036 浏览

java - Hadoop 中的 ClassNotFoundException

使用 Hadoop mapreduce 我正在编写代码来获取不同长度的子字符串。给定字符串“ZYXCBA”和长度为 3 的示例。我的代码必须返回所有可能的长度为 3 的字符串(“ZYX”、“YXC”、“XCB”、“CBA”),长度为 4(“ZYXC”、“YXCB”、 "XCBA") 最后长度为 5("ZYXCB","YXCBA")。

在地图阶段,我做了以下事情:

key = 我想要的子字符串的长度

值 = "ZYXCBA"。

所以映射器输出是

在reduce中,我使用字符串(“ZYXCBA”)和键3来获取长度为3的所有子字符串。4,5也是如此。结果收集在一个 ArrayList 中。

我正在使用以下命令运行我的代码:

我的代码如下所示::

它给出了以下错误:

请帮助我,提前谢谢你:)

0 投票
1 回答
863 浏览

elasticsearch - Elasticsearch shingle 令牌过滤器不起作用

我正在本地 1.7.5 elasticsearch 安装上尝试这个

我看到这个

我希望看到这样的东西

我错过了什么吗?

更新

我正在尝试这样的测试

0 投票
1 回答
790 浏览

java - hadoop mapreduce生成不同长度的子串

使用 Hadoop mapreduce 我正在编写代码来获取不同长度的子字符串。给定字符串“ZYXCBA”和长度为 3 的示例(使用文本文件,我将输入作为“3 ZYXCBA”)。我的代码必须返回所有可能的长度为 3 ("ZYX","YXC","XCB","CBA") 长度为 4("ZYXC","YXCB","XCBA") 最后长度为 5("ZYXCB ","YXCBA")。

在地图阶段,我做了以下事情:

key = 我想要的子字符串的长度

值 = "ZYXCBA"。

所以映射器输出是

在reduce中,我使用字符串(“ZYXCBA”)和键3来获取长度为3的所有子字符串。4,5也是如此。结果使用字符串连接。所以减少的输出应该是:

我正在使用以下命令运行我的代码:

我的代码如下所示:

reduce 的输出而不是返回

它回来了

即,它提供与映射器相同的输出。不知道为什么会这样。请帮我解决这个问题,并提前感谢您的帮助 ;) :) :)