相关疑难解决方法(0)

弹性搜索模糊短语

我有以下查询为我的搜索添加模糊性.但是,我现在意识到匹配查询不考虑搜索字符串中单词的顺序,就像match_phrase那样.但是,我不能得到match_phrase给我模糊的结果.有没有办法告诉匹配考虑单词之间的顺序和距离?

{
    "query": {
        "match": {
            "content": {
                "query": "some search terms like this",
                "fuzziness": 1,
                "operator": "and"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

elasticsearch

10
推荐指数
1
解决办法
3754
查看次数

如何明智地结合带状疱疹和edgeNgram来提供灵活的全文搜索?

我们有一个符合OData的API,它将一些全文搜索需求委托给Elasticsearch集群.由于OData表达式可能变得非常复杂,我们决定将它们简单地转换为等效的Lucene查询语法并将其提供给query_string查询.

我们支持一些与文本相关的OData过滤器表达式,例如:

  • startswith(field,'bla')
  • endswith(field,'bla')
  • substringof('bla',field)
  • name eq 'bla'

我们对匹配字段可以是analyzed,not_analyzed或两者(通过多场IE).所搜索的文本可以是一个单一的令牌(例如table),只有其(例如一部分tab),或数个标记(例如table 1.,table 10等).搜索必须不区分大小写.

以下是我们需要支持的行为的一些示例:

  • startswith(name,'table 1')必须匹配" 表1 "," 表1 00"," 表1 .5"," 表1 12上层"
  • endswith(name,'table 1')必须匹配"房间1,表1 ","子表1 "," 表1 ","杰夫表1 "
  • substringof('table 1',name)必须匹配"Big Table 1 back"," table 1 "," Table 1 ","Small Table1 2"
  • name eq 'table 1'必须匹配" 表1 "," 表1 "," 表1 "

所以基本上,我们接受用户输入(即传递给startswith/ 的第二个参数的内容endswith,或者相应的第一个参数substringof …

regex lucene analyzer odata elasticsearch

4
推荐指数
1
解决办法
2364
查看次数

标签 统计

elasticsearch ×2

analyzer ×1

lucene ×1

odata ×1

regex ×1