从人们的代码来看,您似乎可以使用 setSource()
/setExtraSource()
或 setQuery()
设置查询.
根据文档:
public SearchRequestBuilder setQuery(String query)
使用原始搜索查询构造一个新的搜索源构建器。
public SearchRequestBuilder setSource(String source)
将请求的来源设置为 json 字符串。请注意,设置搜索类型以外的任何内容都会导致此源被覆盖,请考虑使用 setExtraSource(String)
。
Query 和 Source 有什么区别? 我什么时候使用它们?
谢谢
最佳答案
我认为 setQuery(string query) 用于直接设置搜索词。 setSource(String source) 需要有效的 JSON 才能在 Elasticsearch ( https://github.com/elastic/elasticsearch/blob/master/src/main/java/org/elasticsearch/action/search/SearchRequestBuilder.java#L835 ) 请求。
因此,如果您想自己构建搜索请求 JSON,请使用 setSource。
关于java - 弹性 SearchRequestBuilder 中的 setQuery() 和 setSource() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29476646/