[英]Elastic search Unorderered Partial phrase matching with ngram
也許我走錯了路,但是我試圖將Elasticsearch設置為使用部分短語匹配來從句子的任何順序返回部分單詞。 例如。 我有以下輸入
我希望搜索“測試名稱”(或“名稱測試”),並希望所有這些都返回(希望按分數順序排序)。 我可以進行部分搜索,也可以進行無序搜索,但是不能將2相結合。我確信這將是一個非常普遍的問題。
以下是我的設置
{
"myIndex": {
"settings": {
"index": {
"analysis": {
"filter": {
"mynGram": {
"type": "nGram",
"min_gram": "2",
"max_gram": "5"
}
},
"analyzer": {
"custom_analyser": {
"filter": [
"lowercase",
"mynGram"
],
"type": "custom",
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "nGram",
"min_gram": "2",
"max_gram": "5"
}
}
}
}
}
}
}
我的地圖
{
"myIndex": {
"mappings": {
"myIndex": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
},
"analyzer": "custom_analyser"
}
}
}
}
}
}
而我的查詢
{
"query": {
"bool": {
"must": [{
"match_phrase": {
"name": {
"query": "test name",
"slop": 5
}
}
}]
}
}
}
任何幫助將不勝感激。 提前致謝
不知道您是否找到了解決方案-我敢打賭,您這樣做是因為這是一篇很老的文章,但是我一直在尋找相同的東西,並且發現了這一點: Query-Time-as-you-type
查找斜坡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.