我遇到了一个问题,elasticsearch在我的环境(舞台和生产)中返回不同的结果。
我使用的elasticsearch版本对于这两种环境是相同的。
version: { created: 1000199}
这两个环境都具有相同的映射和索引设置。
我有一个项目索引的标题字段为“测试”。我正在尝试执行match_phrase_prefix查询。然而,在我的舞台环境中,当我搜索“te”时,结果会像预期的那样返回。在生产中,我必须将搜索查询扩展到“TES”(3个字母)才能检索文档。
我发出的查询如下:
{
"query": {
"match_phrase_prefix": {
"title": "test"
}
},
"post_filter": {
"term": {
"uniqueId": "my_unique_id"
}
}
}
在这两种环境中我能看到的唯一区别是文档索引的数量。
在我的舞台环境中,我有大约。150K文档索引,相当于大约297M。
在生产中,我已经索引了超过1.2亿个文档,相当于接近120GB。
这是一个规模问题,还是有一些elasticsearch设置,我错过了。正如我所说的,映射和设置在不同的环境中是相同的,所以我在这里有点难倒了。
我很晚了,但看看我的另一个答案。问题在于max_expandsions
参数,默认情况下该参数为10。
与生产环境相比,您的临时环境中以“TE”开头的单词更少,并且它能够在10个扩展中获得测试(按字母顺序排列)
我不知道如何通过MatchPhrasePrefix搜索索引中的文档。我想匹配整个搜索词短语,但允许在最后一个词上加前缀。 这个LINQ建筑给了我1.0分的一切。我将如何构建这个?另一方面,是否可以查看NEST正在构建的原始查询?那将非常有帮助!
我正在使用elasticsearch从json字段进行精确短语匹配。我尝试过多种语法,比如multi_match、query_string query_string我正在使用的语法; 我也尝试了过滤器而不是查询,但是过滤器在json上没有给出任何结果。我用于过滤器的语法是; 现在的问题是; 是否可以使用elasticsearch对json执行精确匹配操作?
在PostgreSQL中获得最长前缀匹配的准确快速查询的最佳方法是什么? 是: 我计划在更新中使用。有什么想法吗?
我有一个字段,使用空白标记器和小写和asciifolding过滤器进行分析。我试图运行一个同时包含前缀和通配符的查询。我们正在用ElasticSearch取代一个使用纯Lucene的本土搜索引擎,类似的查询确实使用Lucene语法,但在ElasticSearch中不起作用。 例如,该查询将查找在“name”字段中有“Smith John”的所有文档。 如果我省略引号,我会得到结果,但这包括在同一文
问题内容: 这对我来说应该是显而易见的,但事实并非如此。以下两个仅匹配第二个阶段(在这种情况下为) 而以下错误发出错误消息 我想匹配包含的所有文件 或者 输入完全相同的词组。 问题答案: 您的第一个查询实际上不是有效的JSON对象,因为您两次使用相同的字段名称。 您可以使用布尔必须查询来匹配两个短语:
通过看到我的结果,我有点困惑如何在MatchPherage和match query中进行评分 对于匹配短语,我有如下查询 获得的reults如下 a。“信用-消费者测试文章”得分12.64 b的文件。“信用-X测试文章”得分12.64 c的文件。“Credit-XYZ测试文章”得分10.92 d的文档。“信用测试文章”得分10.22 e的文件。“Credit-Z测试文章”得分09.40的文档 前两