私はElasticSearch 5を使用しており、次の解決策を見つけることができません: ドキュメント内のスラッシュ(URLの一部)を含む文字列を検索したいとします。しかし、一致する文書は返されません。 スラッシュ付きの文字列がESで分割されているものを読んだことがあります。これは、このフィールドに必要なものではありません。私はマッピングでフィールドに "not_analyzed"を設定しようとしましたが、何とか動作するようには見えません。URLの一部のElasticSearch検索
"インデックスの作成":http://localhost:9200/test
{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"type1" : {
"properties" : {
"field1" : { "type" : "text","index": "not_analyzed" }
}
}
}
}
は、 "ドキュメントの追加" 入れ :POST http://localhost:9200/test/type1/
{
"field1" : "this/is/a/url/test"
}
"検索ドキュメント" POST http://localhost:9200/test/type1/_search
{
"size" : 1000,
"query" : {
"bool" : {
"must" : [{
"term" : {
"field1" : {
"value" : "this/is/a/url/test"
}
}
}
]
}
}
}
応答:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
"マッピング応答":私はあなたが必要なものを疑うhttp://localhost:9200/test/_mapping?pretty
{
"test": {
"mappings": {
"type1": {
"properties": {
"field1": {
"type": "text"
}
}
}
}
}
}
は、それが働いたように見えたが、私は別のドキュメントを追加するとき:{ \t "フィールド1": "DIT /である/ EEN/URL /テスト/ NOG/EEN" }だけの代わりに、返された 完全一致 – BvdVen
2つのオプションがあります。 URLが文字列の一部になる場合は、引き続き "and"演算子との一致を使用できます。フィールドにURLだけが含まれる場合は、@valが正しいことを示します。私は前者の場合を想定した。 –