legacy-knowledge-base
公開されました Jun. 30, 2025

Elasticsearch が会社の固有名詞である単語を分析するのを停止する

投稿者

Jorge Diaz

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

Elasticsearch が会社の固有名詞である単語を分析するのをやめてほしい。

たとえば、当社の名前が「Smiths」の場合、Elasticsearch がその単語を分析して末尾の「s」を削除することを回避したいと考えています。

Environment

  • Liferay DXP の任意のバージョン

解決策

Liferay で Elasticsearch アナライザーの構成をカスタマイズする方法

インデックス作成時および/または検索時の Elasticsearch 単語分析プロセスの動作を変更するには、そのアナライザーの Elasticsearch 構成をカスタマイズする必要があります。
この設定を変更するには、Liferay 側から行う必要があります。 これは、「追加のインデックス構成」セクションの Elasticsearch コネクタ構成から実行できます。詳細については、以下を参照してください。

この記事では、アナライザーを再定義する方法の例を示します。 アクセントに影響されないカスタム Elasticsearch アナライザーを作成する方法

通常のパーサーによる処理を避けるために Elasticsearch でいくつかの単語を処理する方法

一部の単語が通常のパーサーによって処理されるのを回避するには、「ステマー オーバーライド」トークン フィルターまたは「キーワード マーカー」トークン フィルターを使用できます。詳細は次のとおりです。

一方、テキストの書き換えを適用できる「マッピング文字」フィルターもあります。 記事 Mapping character filter を参照してください。たとえば ":(""_sad_" で書き換えますが、この場合は連続するトークナイザーによって管理されます。

これらすべてを見て、「Smiths」という単語を別の方法で処理したい場合は、「Smiths」が Elasticsearch に特別なキーワードとして保存されるようにステマーのオーバーライドを設定できます。

たとえば、 "Smiths, smiths=> __smiths__" with two "_" before and after ルールを使用してステマー オーバーライドを適用すると、言語自体にある他の単語と混同されません。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base