嘗試訪問我的ElasticSearch文檔中的已分析/標記化文本。從ElasticSearch文檔檢索已分析的標記
我知道你可以使用Analyze API分析根據您的分析模塊任意文本。因此,我可以將文檔中的數據複製並粘貼到Analyze API中,以查看它是如何標記的。
雖然這似乎不必要的時間消耗。有什麼方法可以指示ElasticSearch在搜索結果中返回標記文本嗎?我瀏覽過文檔並沒有發現任何內容。
嘗試訪問我的ElasticSearch文檔中的已分析/標記化文本。從ElasticSearch文檔檢索已分析的標記
我知道你可以使用Analyze API分析根據您的分析模塊任意文本。因此,我可以將文檔中的數據複製並粘貼到Analyze API中,以查看它是如何標記的。
雖然這似乎不必要的時間消耗。有什麼方法可以指示ElasticSearch在搜索結果中返回標記文本嗎?我瀏覽過文檔並沒有發現任何內容。
看一看這個其他答案:elasticsearch - Return the tokens of a field。不幸的是,它需要使用提供的腳本來即時重新分析您的字段的內容。
應該可以編寫一個插件來公開這個特性。該想法是將兩個端點添加到:
這個問題是豆蔻老,但也許我認爲一個額外的答案是必要的。
使用ElasticSearch 1.0.0時,添加了Term Vector API,您可以在每個文檔的基礎上直接訪問標記ElasticSearch存儲。 API文檔在這方面不太清楚(僅在示例中提到),但爲了使用API,您必須首先在您的mapping definition中指出要在每個字段中存儲具有term_vector
屬性的術語向量。
您可能需要使用腳本,但是您的服務器應啓用腳本。
curl 'http://localhost:9200/your_index/your_type/_search?pretty=true' -d '{
"query" : {
"match_all" : { }
},
"script_fields": {
"terms" : {
"script": "doc[field].values",
"params": {
"field": "field_x.field_y"
}
}
}
}'
允許的默認設置的腳本取決於彈性搜索版本,請檢查出從官方文檔。
我也有必要對第一種情況,但我不關心的頻率,我只想要一個清單 - 所以我的計劃就是通過現場數據緩存迭代(如正常任期方面做)但沒有收集計數。我有一個部分編寫的插件。 –
不錯的工作,如果你可以在github上分享它,這將是很好的! :) – javanna
如果你是指我 - 是的,當它完成後,在這裏:https://github.com/ptdavteam/elasticsearch-approx-plugin –