首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Searchkick发送许多查询

Searchkick发送许多查询
EN

Stack Overflow用户
提问于 2018-07-29 23:53:55
回答 1查看 275关注 0票数 0

我对Search腿有意见。当我像这样发送查询时

代码语言:javascript
复制
Position.search(
  query.downcase,
  fields: [:name],
  include: [:brand],
  where: {},
  per_page: 40,
  page: 1,
  order: [:name]
)

Searchkick请求有许多类似的查询

代码语言:javascript
复制
http://127.0.0.1:9200/positions_development/_search?pretty -d '{"query":{"dis_max":{"queries":[{"match":{"name.analyzed":{"query":"fly","boost":10,"operator":"and","analyzer":"searchkick_search"}}},{"match":{"name.analyzed":{"query":"fly","boost":10,"operator":"and","analyzer":"searchkick_search2"}}},{"match":{"name.analyzed":{"query":"fly","boost":1,"operator":"and","analyzer":"searchkick_search","fuzziness":1,"prefix_length":0,"max_expansions":3,"fuzzy_transpositions":true}}},{"match":{"name.analyzed":{"query":"fly","boost":1,"operator":"and","analyzer":"searchkick_search2","fuzziness":1,"prefix_length":0,"max_expansions":3,"fuzzy_transpositions":true}}}]}},"size":40,"from":0,"sort":{"have_price":"desc"},"facets":{},"timeout":"11s","fields":[]}'

但是当我将查询更改为

代码语言:javascript
复制
Position.search(
  query.downcase,
  fields: [:name],
  include: [:brand],
  where: {},
  per_page: 40,
  page: 1,
  order: [:name],
  match: :word_start
)

只使用两个查询发送此请求

代码语言:javascript
复制
curl http://127.0.0.1:9200/positions_development/_search?pretty -d '{"query":{"dis_max":{"queries":[{"match":{"name.word_start":{"query":"fly","boost":10,"operator":"and","analyzer":"searchkick_word_search"}}},{"match":{"name.word_start":{"query":"fly","boost":1,"operator":"and","analyzer":"searchkick_word_search","fuzziness":1,"prefix_length":0,"max_expansions":3,"fuzzy_transpositions":true}}}]}},"size":40,"from":0,"sort":{"have_price":"desc"},"facets":{},"timeout":"11s","fields":[]}'

“搜索踢”,“1.3.5” “‘rails”,“4.1.5” elasticsearch 1.7.4

我怎么能解决这个问题而只发送一个查询呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 19:16:09

需要添加misspellings: false来搜索像这样的方法

代码语言:javascript
复制
Position.search(
  query.downcase,
  fields: [:name],
  include: [:brand],
  where: {},
  per_page: 40,
  page: 1,
  order: [:name],
  misspellings: false,
  match: :word_start
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51585477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档