0

Elastic search は初めてで、JAVA API を使用しています。以下は私が直面している問題です。

以下は設定です、私は更新しました

"settings" : {
  "index.settings.analysis.tokenizer.str_search_tokenizer.max_gram" : "5",
  "index.settings.analysis.tokenizer.str_search_tokenizer.token_chars.1" : "digit",
  "index.settings.analysis.tokenizer.str_search_tokenizer.min_gram" : "2",
  "index.settings.analysis.analyzer.str_search_analyzer.tokenizer" : "str_search_tokenizer",
  "index.settings.analysis.tokenizer.str_search_tokenizer.token_chars.0" : "letter",
  "index.settings.analysis.tokenizer.str_search_tokenizer.type" : "edgeNGram",
  "index.number_of_shards" : "1",
  "index.number_of_replicas" : "2",
  "index.version.created" : "900299"
}

インデックス ソース:

"_source" : {"message":"This message is sample of maximization","messageId":1}

メッセージを検索する私のコード:

QueryBuilder queryBuilder = QueryBuilders.fuzzyLikeThisQuery("message").likeText("maximizat").analyzer("str_search_analyzer");
FilterBuilder builder = FilterBuilders.queryFilter(queryBuilder);
System.out.println(builder);
SearchResponse response = client.prepareSearch(indexName).setTypes(typeName).setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setFilter(builder).execute().actionGet();
System.out.println(response.getHits().getTotalHits());

「maximizati」、「maximizatio」、「maximization」などのテキストを提供すると、結果はうまくいきます。

検索テキストを 10 文字未満にすると、結果が表示されませんでした。

elasticsearch.yml ファイルで更新する必要がある変更はありますか? または、設定の JSON または検索クエリに問題がありますか?

4

0 に答える 0