0

エラスティック検索では、自由なテキストをどのように検索できますか。たとえば、" test!£!£"!£"test " のような属性の 1 つにフリー テキスト データがあります。

QueryBuilders を使用して検索すると、特殊文字が原因で例外が発生します。

Web を検索すると、Lucene の escapeUtils を使用する必要があることがわかります。QueryParser.escape(searchText)

この場合、完全一致検索を行うと、それらの文字は無視され、「テスト」の結果も表示されます。

これについて何か提案してください。

4

1 に答える 1

2

おそらくデフォルトのマッピングを使用しているため、StandardAnalyzer. インデックス化されていない文字を取り除いていると思います。テキストにインデックスを付ける方法を決定する必要があります。トークン化しますか、それとも単一のトークンを持ちますか? これらの文字をインデックスに保持しますか? それに基づいて、適切なアナライザーを選択し、Put マッピング APIを介してマッピングを更新する必要があります。たとえば、テキストをそのまま索引付けする場合は、フィールドを として構成するだけです"index":"not_analyzed"。つまり、そのコンテキストは索引付けされますが、テキスト分析は適用されません。

于 2012-11-12T14:37:21.163 に答える