簡體   English   中英

在Elasticsearch中搜索通過攝取附件索引的文檔

[英]Searching documents indexed via ingest-attachment in elasticsearch

在基於屬性的彈性搜索中搜索通過攝取附件索引的文檔。

我是彈性搜索的新手,並希望使用某些屬性(例如作者,標題,主題,類別,社區等)對文件建立索引。

我走了多遠:-

我能夠創建一個附件管道,並且能夠使用屬性來攝取彈性文檔中的不同文檔。 看看下面我是怎么做的:-

1)通過以下請求創建管道:

{  
"description":"Extract attachment information",
"processors":[  
  {  
     "attachment":{  
        "field":"data"
     }
  }
]
}

2)通過以下代碼上傳附件:

{
"filename":"Presentations-Tips.ppt",
"Author":"Jaspreet",
"Category":"uploading ppt",
"Subject":"testing ppt",
"fileUrl":"",
"attributes": 
{"attr11":"attr11value","attr22":"attr22value","attr33":"attr33value"},
"data": "here_base64_string_of_file"
}

3)然后可以自由搜索上述所有屬性以及文件內容:-

 {
 "query":{
 "query_string":{
    "query":"*test*"
 }
 }
 }

現在我想要的是:-想通過一些過濾器來縮小搜索范圍:-

  1. 想要像在特定參數上一樣進行搜索,例如搜索所有作者必須“ Rohan”的人
  2. 然后搜索所有作者必須為“ Rohan”且類別必須為“ Education”的人
  3. 然后搜索所有作者的字母如“ han”和類別的字母“ Tech”的人
  4. 搜索所有作者為“ Rohan”的人,並且可以在所有字段中可以有“進步”的所有字段中搜索全文搜索,這意味着首先要縮小搜索范圍,然后再對那些結果集字段進行全文搜索。

請使用正確的查詢語法為我提供幫助,並致電url,就像上面的全文搜索一樣,我使用的是'GET / my_index / _search'

花了一些時間終於得到了答案:-

curl -X POST \
  http://localhost:9200/my_index/_search \
  -H 'Content-Type: application/json' \
  -d '{
    "query": {
        "bool": {
            "must": [
                {
                    "query_string": {
                        "query": "progress"
                    }
                },
                {
                    "wildcard": {
                        "Author": "Rohan"
                    }
                },
                {
                    "wildcard": {
                        "Title": "q*"
                    }
                }
            ]
        }
    }
}'

現在,您可以根據需要在must數組中刪除或添加任何對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM