gpt4 book ai didi

lucene - 如何使用ElasticSearch进行 “is contained in”

转载 作者:行者123 更新时间:2023-12-02 23:39:42 25 4
gpt4 key购买 nike

假设我有一个句子,想查找在该句子中找到字段X的所有文档。

示例:

我的句子是:“那只敏捷的棕色狐狸跳过了那只懒狗”。

我有3个文件。每个都有一个称为关键字的字段:

  • 1,关键字=狐狸
  • 2,关键字=狗
  • 3,关键字= cat

  • 我想运行一个查询,以检查关键字是否出现在提供的值中,因此1和2将匹配,而3将不匹配。

    我已经检查了文档,并认为我可以使用“fuzzy_like_this”来做到这一点,但是它返回的文档甚至没有“关键字”字段。

    谁能指出我正确的方向?

    最佳答案

    只需使用带有适当分析器的查询解析器进行搜索即可,例如:

    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_48);
    QueryParser parser = new QueryParser(Version.LUCENE_48, "keyword", analyzer);
    Query query = parse.parse("The quick brown fox jumped over the lazy dog");
    int maxHits = 10; //Or however many you want
    TopDocs topdocs = indexSearcher.search(query, maxHits);

    上面的查询将搜索关键字字段中存在的每个术语,因此查询将类似于(默认情况下,这是一个停用词,因此将被消除):
    keyword:quick keyword:brown keyword:fox keyword:over keyword:lazy keyword:dog

    在elasticsearch中,等效项是 query string query
    {
    "query_string" : {
    "default_field" : "keyword",
    "query" : "The quick brown fox jumped over the lazy dog"
    }
    }

    关于lucene - 如何使用ElasticSearch进行 “is contained in”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549461/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com