Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
406 views
in Technique[技术] by (71.8m points)

Mongodb Atlas Search with directive insensitive

I am using MongoDB Atlas Search to perform a search in Collection, for this I created a Atlas Search Index:

{
  "mappings": {
    "dynamic": false,
    "fields": {
      "caption": {
        "type": "string"
      }
    }
  }
}

Here is my aggregation:

[
   {
      "$search":{
         "text":{
            "path":"caption",
            "query":"Ingocnitáá",
            "fuzzy":{
               
            }
         },
         "highlight":{
            "path":"caption"
         }
      }
   }
]

I have below document in my collection:

{caption:"Ct tyu test Ingocnitáá"}

Issue: When I searching Ingocnitaa agreegation returning 0 result.

Is there anything wrong with my Search Index? I want an directive insensitive Search with highlight.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There are two things missing:

  1. Include index name (Recommend to not use a default index, create a new index)
  2. Always pass fuzzy:{}

Here is a working query:

[
  {
       "$search":{
          "index": 'messageText',
          "text":{
             "path":"caption",
             "query":"Ingocnitaa",
             "fuzzy":{

             }
          },
          "highlight":{
             "path":"caption"
          }
       }
    }
]

Where messageText is search index name.


Search Index Formattion:

{
  "mappings": {
    "dynamic": false,
    "fields": {
      "caption": {
        "type": "string"
      }
    }
  }
}

Reference: CLick here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...