6

ElasticSearch を使用してドキュメントのインデックスを作成しています。

私のマッピングは次のとおりです。

"mongodocid": {
  "boost": 1.0,
  "store": "yes",
  "type": "string"
},
"fulltext": {
  "boost": 1.0,
  "index": "analyzed",
  "store": "yes",
  "type": "string",
  "term_vector": "with_positions_offsets"
}

完全な全文を強調表示するためnumber_of_framgmentsに、0 に設定しています。

次の Lucene のような文字列クエリを実行すると:

{
  "highlight": {
    "pre_tags": "<b>",
    "fields": {
      "fulltext": {
        "number_of_fragments": 0
      }
    },
    "post_tags": "</b>"
  },
  "query": {
    "query_string": {
      "query": "fulltext:test"
    }
  },
  "size": 100
}

結果セット内の一部のドキュメントでは、強調表示されたフルテキストの長さがフルテキスト自体よりも短くなっています。私はnumber_of_fragments0 に設定してpre_tags/post_tagsを追加しているので、これは起こらないはずです。

ここで、奇妙な動作が発生します。次のようにして、失敗した要素の 1 つだけを検索すると、次のようになります。

{
  "highlight": {
    "pre_tags": "<b>",
    "fields": {
      "fulltext": {
        "number_of_fragments": 0
      }
    },
    "post_tags": "</b>"
  },
  "query": {
    "query_string": {
      "query": "fulltext:test AND mongodocid:4d0a861c2ebef6032c00b1ec"
    }
  },
  "size": 100
}

その後、すべて正常に動作します。

何か案は?

4

1 に答える 1

6

0.14.0 で修正された問題のようです ( #479を参照)。これを書いている時点ではまだ 0.14.0 がリリースされていませんが、master を試してみることはできますか?

于 2010-12-22T20:37:10.263 に答える