1
と一致していません。私のテスト項目が怒鳴るあるelasticsearch NGRAMとPostgreSQLのトライグラムの検索結果は、私が怒鳴ると同じ<strong>elasticsearch</strong>にインデックスcrereatedまし
"settings" : {
"number_of_shards": 1,
"number_of_replicas": 0,
"analysis": {
"filter": {
"trigrams_filter": {
"type": "ngram",
"min_gram": 3,
"max_gram": 3
}
},
"analyzer": {
"trigrams": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"trigrams_filter"
]
}
}
}
},
"mappings": {
"issue": {
"properties": {
"description": {
"type": "string",
"analyzer": "trigrams"
}
}
}
}
を:
"alici onay verdi basarili satisiniz gerceklesti diyor ama hesabima para transferi gerceklesmemis"
"otomatik onay işlemi gecikmiş"
"************* nolu iade islemi urun kargoya verilmedi zamaninda iade islemlerinde urun erorr hata veriyor"
私はしましたクエリを使用してこのインデックスをテストしてください:
GET issue/_search
{
"query": {
"match": {
"description":{
"query": "otomatik onay istemi zamaninda gerceklesmemis"
}
}
}
}
LT:怒鳴るSQL応答でのpostgresql上
{
....
"hits": {
....
"max_score": 2.3507352,
"hits": [
{
....
"_score": 2.3507352,
"_source": {
"issue_id": "*******",
"description": "alici onay verdi basarili satisiniz gerceklesti diyor ama hesabima para transferi gerceklesmemis"
}
}
]
}
}
しかし、同じデータを別の結果:
SELECT
public.tbl_issue_descriptions_big.description,
similarity(description, 'otomatik onay islemi zamaninda gerceklesmemis') AS sml
FROM
public.tbl_issue_descriptions_big
WHERE
description %'otomatik onay islemi zamaninda gerceklesmemis'
ORDER BY
sml DESC
LIMIT 10
結果は次のとおりです。
description | sml
======================================================|======
otomatik onay islemi gecikmis |0,351852
なぜこの違いが発生していますか?
お返事ありがとうございます。 しかしpostgresql equvalentはts_vectorであり、フルテキスト検索に使用されると思います。しかし、機械学習のためのngramと類似点。私は今、elasticsearchで類似性アルゴリズムを探しています。 –
https://lucene.apache.org/core/6_6_0/core/org/apache/lucene/search/similarities/TFIDFSimilarity.htmlやhttps://lucene.apache.org/core/のようなluceneのドキュメントを参照してください。 6_6_0/core/org/apache/lucene/search/similarities/BM25Similarity.html(新しいインデックスを作成すると、ES 5.0以降のデフォルトです) – alr