问题标签 [query-analyzer]

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 投票
2 回答
787 浏览

sql - 从包含 XML 格式数据的列中提取值的查询

假设我有一个表mydata,它有一个xmldata列,其值是 XML 格式的文本,例如

如何<pricedata pricetype="normal">123</pricedata>从 xmldata 列中提取?

0 投票
1 回答
2300 浏览

elasticsearch - 该完成建议器使用什么 Elasticsearch Analyzer?

我对 Elasticsearch 非常陌生,目前正试图让我的头脑围绕分析器来了解completion suggester

我有一个这样的地方列表:

  • 伦敦
  • 伦敦眼
  • 伦敦地牢
  • ETC...

通过将完成建议器的映射设置为以下内容:

当建议者的文本输入只是字母时,我现在能够返回所有上述三个建议L

但是,我希望The London Eye在用户键入单词时返回,eye并且同样The London Dungeon在用户键入时返回Dungeon(当然对于这些术语的任何前缀)

在今天的大部分时间里,我一直在使用不同的分析器和设置,但没有成功。

我需要使用什么样的分析仪来实现上述目标?

0 投票
2 回答
2366 浏览

elasticsearch - 已应用 ElasticSearch search_analyzer 但未返回任何结果

我有一个应该搜索小写字词的查询。

实际上,我只有一个带有小写过滤器的index_analyzer,但我还想添加一个search_analyzer,这样我就可以进行不区分大小写的搜索。

所以我只是想将与search_analyzer相同的分析器添加到映射中

这样做,如果我手动查询弹性搜索

我看到查询词是正确小写的

但是从代码执行

  • 如果我使用大写搜索词 ES 返回零命中(即使我们看到应用了search_analyzer
  • 如果我使用小写搜索词 ES 返回我正确的结果命中数(数百)

虽然我想独立于案例获得相同的结果。

在代码中,我只是创建一个带有术语过滤器的查询,就像这样

我做错了什么?为什么我没有得到任何结果?

0 投票
1 回答
71 浏览

sql - 为什么我的 SQL Server CE 表在 Query Analzyer 中不可删除?

我尝试使用以下两种方法删除 SQL Server CE 表:

-和:

...在查询分析器中,但在这两种情况下,我都会得到相同的错误消息:

在此处输入图像描述

放下一张桌子应该很容易,但这一张会不断反弹,就像一个反向的 Humpty Dumpty。

我需要做些什么才能让它真正消失 - “Nuke invHeader”?

雪上加霜的是,在此命令失败后(指定表名的两种“样式”),查询分析器似乎失去了它的突触连接,并且不允许我再编辑 SQL/DDL 语句 - 我必须暖和在再次进入其突触之前启动手持设备。

0 投票
1 回答
345 浏览

elasticsearch - 带有小写过滤器的自定义分析器无法按预期工作

我有一个简单的自定义分析器,custom_raw_analyzer如下所示:

但是当我对随机字符串进行测试时,输出标记不是小写的:

结果:

谁能解释为什么?

0 投票
1 回答
111 浏览

elasticsearch - 如何使弹性搜索忽略某些查询之间的空格?

我的弹性搜索文档有一个字段Name,其中包含以下条目:

在使用以下查询查询此字段时(注意“s”和“3”之间的空格)

"Samsung Galaxy Duos 3"作为相关结果返回,而不是"Samsung Galaxy S3".

我注意到此类任务的模式是忽略任何数字和任何单个字母字符之间的空格,并进行查询。例如 then ,"I-phone 5s"也应该由"I-phone 5 s".

有没有很好的方法来实现这一点?

0 投票
1 回答
2609 浏览

elasticsearch - ElasticSearch 使用模式分析器搜索特殊字符

我目前正在使用将标记器设置为模式的自定义分析器(\W|_)+所以每个术语都只是字母并且拆分任何非字母。例如,我有一个包含内容的文档[dbo].[Material_Get]和另一个带有dbo.Another_Material_Get. 我希望能够搜索“Material_Get”并在两个文档上都得到点击,但是如果我搜索“[Material_Get]”,dbo.Another_Material_Get即使它没有括号,它仍然会命中。此外,如果我搜索“Material Get”(在引用的搜索中),我不应该得到任何点击,因为它们都没有那个短语。

我可以选择一个分析器/标记器,只要文件中的任何地方有输入字符串,即使它旁边还有其他东西,它也会找到。例如,搜索“aterial_get”将在两者中匹配。有可能做我的任何一个案例吗?

0 投票
1 回答
1783 浏览

java - 用于在 ElasticSearch 中搜索短语的分析器

我正在使用 ElasticSearch 1.5.2。我想允许在我的搜索引擎中搜索短语。

假设文本是

read with section 114 of the Indian Penal Code

使用默认分析器我无法在搜索查询中获得任何结果

section 114 penal code

所以,我添加了一个分析器:

我正在索引文件(已经采用可接受的 json 格式),如下所示:

并使用matchQuery这样的查询:

但我仍然没有得到任何结果。你能建议我该怎么做吗?

编辑:实际上,当我尝试从该分析器中获取任何类型的结果时,我没有得到任何结果......即使有一个查询“部分”,它存在于我索引的所有文档中,我也没有得到任何结果,而,当我使用默认分析器进行搜索时,我得到了一些结果。那么,这个分析器是不工作还是什么?

编辑:示例文件,

0 投票
2 回答
989 浏览

java - 卢森。为文本中的每个单词索引几个标记

我正在使用带有SpanishAnalyzer的 lucene 3.5 (它本身使用 SpanishStemmerStandardTokenizer)。
当 SpanishAnalyzer 索引包含单词(例如)“claramente”和“claro”的文档时,它们都将被索引为“clar”。
这种行为可以理解并且对我的需求很有用,今天在查询之前,我使用分析器的tokenStream+incrementToken()来获取我的搜索词的标记并针对索引文档进行搜索。我没有使用 QueryParser 而是在代码中构建 lucene 查询对象。
但是我希望能够搜索确切的单词(在此示例中为 claro),而不会失去西班牙语分析器的形态能力。
我可以跳过上面的步骤(tokenStream)并直接搜索“claro”,但它不会被找到,因为它被索引为“clar”。
此外,我不想使用 2 个不同的分析器对该字段进行两次索引,因为我需要能够使用PhraseQuerySpanNearQuery包含一个确切的单词和一个常规术语(形态学)。
所以……我要说到点子上了……我想修改 Tokenizer 或 Stemmer 或 Filter (?) 所以在索引时间它将为每个单词索引 2 个标记,词干一个和原始一个,在这种情况下“claro " 和 "clar" 以及以后查询时,我可以选择是使用确切的单词还是词干标记。
我需要帮助了解如何(以及在​​哪里)我可以做到这一点,我想编辑应该在 Stemmer 的某个地方完成。

顺便说一句,我对希伯来语分析器的操作完全相同,它在使用时为文本中的每个单词返回几个标记incrementToken()(但我没有源代码)

0 投票
0 回答
900 浏览

elasticsearch - 弹性搜索。SKU分析和搜索

这让我很生气,我已经尽我所能。事情就是这样。我需要:

  1. 将所有看起来相似的俄语字母转换为英语(在分析和搜索请求时)
  2. 删除所有非字母和非数字
  3. 使用 ngram 大小写搜索制作标记可以来自字符串的任何位置

例如,您可以搜索 8009,而我有 ALK-8009 和 ALK-8022 的 sku,我不明白为什么 ALK-8022 会高于 ALK-8009。

这是我的搜索查询:

我期望的只有那些在 SKU 中具有完整搜索字符串的结果,而不仅仅是部分。

例如,ALK-80 - 将转换为 alk80,只有这些结果才是我需要的。