0

我正在使用searchkit 2.2.0 中的SearchBox,并希望使用选项类型 best_fields对 elasticsearch 进行多匹配查询

  1. 使用 prefixQueryFields 时如何设置类型best_fields
  2. 如何正确设置best_fields类型的 prefixQueryOptions对象?

如果我设置prefixQueryFields属性,查询是我想要的多匹配,但类型是phrase_prefix 会得到我不喜欢的结果。 QueryAccessor.ts->this.options.prefixQueryFields->type:"phrase_prefix"

<SearchBox autofocus={true} searchOnChange={true} prefixQueryFields={["fileName^3", "path", "attachment.content", "attachment.author", "attachment.title"]}/>
结果查询:prefixQueryFields 并输入phrase_prefix

如果我设置prefixQueryOptions属性,以避免输入phrase_prefix,查询就变成了simple_query_string。当我设置prefixQueryOptions对象时,也许我在这里犯了一个错误。

<SearchBox autofocus={true} searchOnChange={true} prefixQueryOptions={{
				"fields" : [ "fileName^3", "path", "attachment.content", "attachment.author", "attachment.title" ],
				"type":       "best_fields"
			}}/>
结果查询:prefixQueryOptions 和 simple_query_string

搜索框

多匹配类型

4

1 回答 1

0

queryBuilder可以提供比prefixQueryFields更灵活的逻辑。 https://blog.searchkit.co/searchkit-0-9-23d78568d219

const customQueryBuilder = (query, options) => {
  return {
    "multi_match": {
			"query": query,
			"fields" : [ "fileName^3", "path", "attachment.content", "attachment.author", "attachment.title" ],
			"type":       "best_fields"
	}
  }
}

<SearchBox autofocus={true} searchOnChange={true} queryOptions={{analyzer:"standard"}} queryFields={["fileName^3","path","attachment.content","attachment.author","attachment.title","attachment.fileExtension"]} queryBuilder={customQueryBuilder} />

在此处输入图像描述

于 2017-10-12T11:46:46.627 回答