我正在尝试使用雪球分析器对索引进行查询。它似乎无法正常工作。如果我输入“starbucks”,它将返回 0 个结果,但是如果我输入“starbuck”,它会返回名称中带有“Starbucks”的所有数据。
我知道在进行正常搜索时,您必须明确指定该字段才能使用 search_analyzer。
_mapping 说我使用的是雪球 index_analyzer 但没有提到雪球 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();