ngram java_突出与模糊和ngram

我猜这个主题的 Headers 足以让你失望:D

我使用edge_ngram并突出显示以构建自动完成搜索 . 我在查询中添加了模糊性以允许用户错误地搜索他们的搜索,但它突出了一些亮点 .

当我写 Sport 时,这就是我得到的:

Sport

Sport mécanique

Sport nautique

我想这是因为它与ngram tokenizer生成的令牌 spor 匹配 .

查询:

{

"query": {

"bool": {

"should": [

{

"match": {

"name": {

"query": "sport",

"operator": "and",

"fuzziness": "AUTO"

}

}

},

{

"match_phrase_prefix": {

"name.raw": {

"query": "sport"

}

}

}

]

}

},

"highlight": {

"fields": {

"name": {

"term_vector": "with_positions_offsets"

}

}

}

}

和映射:

{

"settings": {

"analysis": {

"analyzer": {

"partialAnalyzer": {

"type": "custom",

"tokenizer": "ngram_tokenizer",

"filter": ["asciifolding", "lowercase"]

},

"keywordAnalyzer": {

"type": "custom",

"tokenizer": "keyword",

"filter": ["asciifolding", "lowercase"]

},

"searchAnalyzer": {

"type": "custom",

"tokenizer": "standard",

"filter": ["asciifolding", "lowercase"]

}

},

"tokenizer": {

"ngram_tokenizer": {

"type": "edge_ngram",

"min_gram": "1",

"max_gram": "15",

"token_chars": [ "letter", "digit" ]

}

}

}

},

"mappings": {

"place": {

"properties": {

"name": {

"type": "string",

"index_analyzer": "partialAnalyzer",

"search_analyzer": "searchAnalyzer",

"term_vector": "with_positions_offsets",

"fields": {

"raw": {

"type": "string",

"analyzer": "keywordAnalyzer"

}

}

}

}

}

}

}

我试图在查询中添加一个没有模糊性的新匹配子句,以尝试匹配关键字 before 匹配模糊但它没有改变任何东西 .

'match': {

'name': {

'query': 'sport',

'operator': 'and'

}

知道怎么处理这个吗?

此致,Raphaël

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值