与ElasticSearch完全匹配(在查询时)

迈克尔·琼克

我有一个位置索引,其中包含很多位置名称及其各自的国家/地区。

然后,我想知道我们在该国家/地区是否具有标题为“ Berlin”的地点,国家/地区代码为“ DE”。

这是我的Java代码尝试:

SearchResponse response = client.prepareSearch("locations")
                .setQuery(QueryBuilders.matchQuery("title", "Berlin"))
                .setFilter(FilterBuilders.termFilter("country", "DE"))
                .execute()
                .actionGet();

但这给了我太多答复,例如“ Zoo Berlin”的结果等等。我需要完全匹配。

(但是请注意,在其他情况下,需要此子字符串/文本搜索匹配。)

有没有一种方法可以在查询时而不是在编制索引时决定一个人想要哪种行为(精确文本还是分析文本)?

斯科特·赖斯

将未执行术语过滤的字段编入索引。例如,您可以将“国家”字段索引为multi_field,其中一个子字段为not_analyzed:

        "country": {
            "type": "multi_field",
            "fields": {
                "country": {"type": "string", "index": "analyzed"},
                "exact": {"type": "string","index": "not_analyzed"}
            }
        }

另外,您可以对“标题”字段执行相同的操作以执行术语查询:

        "title": {
            "type": "multi_field",
            "fields": {
                "title": {"type": "string", "index": "analyzed"},
                "exact": {"type": "string","index": "not_analyzed"}
            }
        }

然后在查询时,如果您想要一个标题与“柏林”完全相同的标题,并由术语“ DE”过滤,请使用一个带有not_analyzed字段的术语查询和术语过滤器:

SearchResponse response = client.prepareSearch("locations")
                .setQuery(QueryBuilders.termQuery("title.exact", "Berlin"))
                .setFilter(FilterBuilders.termFilter("country.exact", "DE"))
                .execute()
                .actionGet();

请注意,字词过滤器字词查询要求not_analyzed字段起作用(即,返回完全匹配)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与ElasticSearch完全匹配(在查询时)

来自分类Dev

Elasticsearch完全匹配查询(不模糊)

来自分类Dev

Elasticsearch dis_max查询,返回完全匹配的查询

来自分类Dev

Elasticsearch:如何查询长字段以进行完全匹配

来自分类Dev

elasticsearch搜索完全匹配的查询不起作用

来自分类Dev

Searchkick / Elasticsearch完全匹配

来自分类Dev

Kibana查询完全匹配

来自分类Dev

ElasticSearch-查询时如何匹配所有子词

来自分类常见问题

elasticsearch匹配与词条查询

来自分类Dev

映射时在ElasticSearch中优先于ngram匹配进行完全匹配

来自分类Dev

映射时在ElasticSearch中优先于ngram匹配进行完全匹配

来自分类Dev

Elasticsearch特定领域的完全匹配

来自分类Dev

ElasticSearch中的半完全(完全)匹配

来自分类Dev

如何在Elasticsearch中的分析字段上执行完全匹配查询?

来自分类Dev

如何在Elasticsearch中按具有完全匹配项的字段搜索查询

来自分类Dev

Elasticsearch和C#-查询以查找字符串的完全匹配

来自分类Dev

sailsjs数组查询完全匹配

来自分类Dev

在MongoDB中查询完全匹配

来自分类Dev

查询项和过滤器项在完全匹配时返回零结果,但是查询匹配返回结果。为什么?

来自分类Dev

使用匹配或术语的ElasticSearch查询?

来自分类Dev

Elasticsearch 多前缀查询 OR 匹配

来自分类Dev

在Elasticsearch中偏向于nGram的完全匹配

来自分类Dev

elasticsearch与破折号完全匹配

来自分类Dev

ElasticSearch:完全比部分匹配的得分低

来自分类Dev

Elasticsearch中的完全匹配项(包括空格)

来自分类Dev

ElasticSearch中的半精确(完全)匹配

来自分类Dev

与elasticsearch中的IN运算符完全匹配

来自分类Dev

识别布尔查询Elasticsearch中匹配的查询

来自分类Dev

Elasticsearch:合并术语查询和匹配查询

Related 相关文章

  1. 1

    与ElasticSearch完全匹配(在查询时)

  2. 2

    Elasticsearch完全匹配查询(不模糊)

  3. 3

    Elasticsearch dis_max查询,返回完全匹配的查询

  4. 4

    Elasticsearch:如何查询长字段以进行完全匹配

  5. 5

    elasticsearch搜索完全匹配的查询不起作用

  6. 6

    Searchkick / Elasticsearch完全匹配

  7. 7

    Kibana查询完全匹配

  8. 8

    ElasticSearch-查询时如何匹配所有子词

  9. 9

    elasticsearch匹配与词条查询

  10. 10

    映射时在ElasticSearch中优先于ngram匹配进行完全匹配

  11. 11

    映射时在ElasticSearch中优先于ngram匹配进行完全匹配

  12. 12

    Elasticsearch特定领域的完全匹配

  13. 13

    ElasticSearch中的半完全(完全)匹配

  14. 14

    如何在Elasticsearch中的分析字段上执行完全匹配查询?

  15. 15

    如何在Elasticsearch中按具有完全匹配项的字段搜索查询

  16. 16

    Elasticsearch和C#-查询以查找字符串的完全匹配

  17. 17

    sailsjs数组查询完全匹配

  18. 18

    在MongoDB中查询完全匹配

  19. 19

    查询项和过滤器项在完全匹配时返回零结果,但是查询匹配返回结果。为什么?

  20. 20

    使用匹配或术语的ElasticSearch查询?

  21. 21

    Elasticsearch 多前缀查询 OR 匹配

  22. 22

    在Elasticsearch中偏向于nGram的完全匹配

  23. 23

    elasticsearch与破折号完全匹配

  24. 24

    ElasticSearch:完全比部分匹配的得分低

  25. 25

    Elasticsearch中的完全匹配项(包括空格)

  26. 26

    ElasticSearch中的半精确(完全)匹配

  27. 27

    与elasticsearch中的IN运算符完全匹配

  28. 28

    识别布尔查询Elasticsearch中匹配的查询

  29. 29

    Elasticsearch:合并术语查询和匹配查询

热门标签

归档