elasticsearch,synonym,Python,elasticsearch,Synonym" /> elasticsearch,synonym,Python,elasticsearch,Synonym" />

如何使用Python中的同义词在弹性搜索中搜索查询

如何使用Python中的同义词在弹性搜索中搜索查询,python,elasticsearch,synonym,Python,elasticsearch,Synonym,我无法理解弹性搜索查询和同义词表的实现。对于一般查询,我没有任何搜索问题,但合并同义词对我来说是一个问题 es.search(index='data_inex', body={ "query": { "match": {"inex": "tren"} }, "settings": { "fil

我无法理解弹性搜索查询和同义词表的实现。对于一般查询,我没有任何搜索问题,但合并同义词对我来说是一个问题

es.search(index='data_inex', body={
        "query": {
            "match": {"inex": "tren"}
        },
        "settings": {
            "filter": {
                "synonym": {
                  "type": "synonym",
                  "lenient": true,
                  "synonyms": [ "foo, baz", "tren, hut" ]
              }
            
            }
        
        }
    }
)

另外,是否可以使用文件来代替此数组?

请查看文档:

您还可以配置同义词文件:

PUT /test_index
{
  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "synonym": {
            "tokenizer": "whitespace",
            "filter": [ "synonym" ]
          }
        },
        "filter": {
          "synonym": {
            "type": "synonym",
            "synonyms_path": "analysis/synonym.txt" // <======== location of synonym file
          }
        }
      }
    }
  }
}
PUT/test\u索引
{
“设置”:{
“索引”:{
“分析”:{
“分析器”:{
“同义词”:{
“标记器”:“空白”,
“过滤器”:[“同义词”]
}
},
“过滤器”:{
“同义词”:{
“类型”:“同义词”,

“同义词路径”:“analysis/synonym.txt”//ES中没有put请求,只是get请求,不知道如何在代码中使用上述代码段。您知道python查询的弹性等价物吗?ES不支持在搜索查询中设置。是的。有两种方法…a)索引时间分析(映射期间将在字段中添加同义词分析器)b)查询时间分析(在这种情况下,需要在查询时间期间定义同义词分析器)我的回答有帮助吗?你能纠正这个问题吗?我很感谢你对我的问题的关注。但是你提供的代码我已经在es官方文档中看到了。如果你能为我提供搜索查询的python代码以及语义,我将不胜感激,这是我的问题,因为我上面的代码没有给我任何答案。我没有找到这方面的线索。