2

知りたかっただけです。_source = falseのインデックスでElasticSearchのテキストを強調表示することは可能ですか?

ESにドキュメントがない場合、ハイライトを実行できないことはわかっていますが、ハイライト付きの完全な検索エンジンではなく、ESをハイライトエンジンとして使用する方法はありますか?(ハイライトクエリで完全なドキュメントを提供します)

ありがとう

4

3 に答える 3

3

私はそれが可能だとは思わない。

ただし、検索クエリとドキュメントで_analyzeを使用してから、トークンを比較してコードで強調表示することができます。

例えば:

curl -XGET 'localhost:9200/test/_analyze?analyzer=snowball' -d 'some search query keywords'

{"tokens":[{"token": "some"、 "start_offset":0、 "end_offset":4、 "type": ""、 "position":1}、{"token": "search"、 "start_offset":5、 "end_offset":11、 "type": ""、 "position":2}、{"token": "query"、 "start_offset":12、 "end_offset":17、 "type" :""、 "position":3}、{"token": "keyword"、 "start_offset":18、 "end_offset":26、 "type": ""、 "position":4}]}

curl -XGET'localhost:9200 / test / _analyze?analyzer = snowball' -d'$ document_text'

{"トークン":..}

次に、ドキュメント内でそれらのトークンの一致を探します。オフセットにより、ドキュメント内の正しいハイライト位置が提供されます。

于 2012-06-22T21:40:36.613 に答える
1
{
  "query": {
    "query_string": {
      "query": "**",
      "fields["
      sometext "]}},"
      highlight {
        "pre_tags": ["<em>"],
        "post_tags[</em>"],
      "order": "score",
      "require_field_match": true,
      "fields": {
        "sometext": {
          "fragment_size": 180,
          "number_of_fragments": 1
        }
      }
    }
  }
于 2017-09-18T08:10:04.887 に答える
0

ソースがデフォルトで非アクティブ化されていない場合は、次のことができます。

{
    "_source" :  ["_id"],
    "query": {
        "match" : {
            "attachment.content" : "Setup"
        }
    },
    "highlight": {
        "fields" : {
            "attachment.content" : {}
        }
    }
}

に何かを入れる必要があり_scoreます。それでも、見つかったドキュメントに関するすべての「メタデータ」が返されます。

{
    "took": 4,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 1,
        "max_score": 0.2919385,
        "hits": [
            {
                "_index": "test",
                "_type": "_doc",
                "_id": "xpto",
                "_score": 0.2919385,
                "_source": {},
                "highlight": {
                    "attachment.content": [
                        "<em>Setup</em> the [GenericCommand.properties] file\n\nThe commands that ought to be recognized have to be defined"
                    ]
                }
            }
        ]
    }
}
于 2019-05-22T15:15:35.827 に答える