elasticsearch,Lucene,elasticsearch" /> elasticsearch,Lucene,elasticsearch" />

Lucene “怎么做?”;载于「;使用弹性搜索

Lucene “怎么做?”;载于「;使用弹性搜索,lucene,elasticsearch,Lucene,elasticsearch,假设我有一个文本句子,并希望找到在该句子中找到字段X的所有文档 示例: “敏捷的棕色狐狸跳过了懒狗”是我的一句话 我有3份文件。每个字段都有一个名为关键字的字段: 1,关键字=福克斯 2,关键字=狗 3,关键字=猫 我想运行一个查询,检查关键字是否出现在提供的值中,以便1和2匹配,但3不匹配 我检查了文档,认为我可以用“fuzzy_like_this”来完成,但它会返回没有“keyword”字段的文档 有人能给我指出正确的方向吗?只需使用带有适当分析器的查询解析器进行搜索,如: Analyz

假设我有一个文本句子,并希望找到在该句子中找到字段X的所有文档

示例:

“敏捷的棕色狐狸跳过了懒狗”是我的一句话

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

  • 1,关键字=福克斯
  • 2,关键字=狗
  • 3,关键字=猫
我想运行一个查询,检查关键字是否出现在提供的值中,以便1和2匹配,但3不匹配

我检查了文档,认为我可以用“fuzzy_like_this”来完成,但它会返回没有“keyword”字段的文档


有人能给我指出正确的方向吗?

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

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);
上面的查询将搜索关键字字段中存在的每个术语,因此查询将类似于(默认情况下是停止词,因此将被删除):

在elasticsearch中,等价物是


谢谢。这正是我需要的。从查询字符串的描述来看,这似乎并不明显,但将其付诸实践,效果非常好。
keyword:quick keyword:brown keyword:fox keyword:over keyword:lazy keyword:dog
{
    "query_string" : {
        "default_field" : "keyword",
        "query" : "The quick brown fox jumped over the lazy dog"
    }
}