SnowballAnalyzerを使用してインデックスに対してクエリを実行しようとしています。正しく機能していないようです。「スターバックス」と入力すると0の結果が返されますが、「スターバックス」と入力すると、名前に「スターバックス」が含まれるすべてのデータが返されます。
通常の検索を行うときは、search_analyzerを使用するために、フィールドを明示的に指定する必要があることを知っています。
_mappingがsnowballindex_analyzerを使用していると言っているのに、snowball search_analyzerについて言及していないのは奇妙ですか?
マッピングスニペット:
name: {
type: "string",
search_analyzer : "snowball",
index_analyzer : "snowball",
boost : 1
},
tags: {
type: "string",
search_analyzer : "snowball",
index_analyzer : "snowball",
boost : 4
}
/ businesses / business/_mappingからのスニペット
name: {type: "string",analyzer: "snowball"},
tags: {type: "string",boost: 4,analyzer: "snowball"}
検索を行うJavaコード:
val response = client.prepareSearch("businesses")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(termQuery("name", term))
.setFrom(0).setSize(100).setExplain(true)
.execute()
.actionGet();