0

屋外では、検索中にコンテンツからxmlタグを削除/除外する必要があるような方法でluceneクエリを作成する必要があります。

例ファイルtry.xmlがコンテンツに対して検索された場合、私の検索ではxmlタグは検索されません。

try.xml
<sample>This is an example</sample>

検索テキストを「サンプル」として指定すると、ファイル名「try.xml」が返されません。では、どうすればこれを達成できますか?

編集

私は以下のクエリで試しましたが、変更はありません。

@cm\:name:"try*" -TEXT:"<*>" +TEXT:"sample"

上記のクエリの何が問題になっていますか。「try」で始まるファイル名を取得し、タグ内のテキストを削除して、テキスト「sample」を検索しようとしました。

4

3 に答える 3

1

デフォルトでは、Alfresco は XML ファイルをプレーン テキストとして扱い、xml タグを単語としてインデックス付けするため、全文検索で見つけることができます。XML コンテンツは、インデックスを作成する前に text/xml を text/plain に変換する Alfresco の StringExtractingContentTransformer によって処理されます。

Alfresco インストールに登録されているトランスフォーマーを確認するには、 http://localhost:8080/alfresco/service/mimetypes?mimetype=text/xml#text/xmlを確認します。

xml 属性のインデックス作成を防ぐには、XML タグを取り除く特別なトランスフォーマーを作成する必要があります。Alfresco を使用したコンテンツ変換の概要については、http://wiki.alfresco.com/wiki/Content_Transformationsを参照してください。最も簡単な方法は、xml ファイルをテキストに変換するコマンド ライン ユーティリティを統合するか、変換を行う Java クラスを実装することです。

于 2011-04-06T11:10:01.517 に答える
0

必要なことを行うための標準的な方法はありません。公式ドキュメントの抜粋を次に示します。

ワイルドカードクエリ*および?を使用したワイルドカードクエリ 用語やフレーズとしてのサポートです。トークン化されたフィールドの場合、トークン以外のすべての文字(空白、句読点など)が失われ、同等として扱われるため、パターン一致を正確にすることはできません。

基本的に、山かっこはデフォルトで削除されます。必要な動作を有効にするには、インデックス作成とクエリの解析プロセスをハックする必要があります。

于 2011-03-25T08:54:02.667 に答える
0

xml mimetypeを除外するだけではいけませんか?(構文については、http://wiki.alfresco.com/wiki/Search#Finding_nodes_by_content_mimetypeを参照してください)

htmlも除外することをお勧めします(したがって、text/htmlとtext/xmlを除外します)。これにより、結果にxmlタグを含むノードが含まれなくなります。

于 2011-04-02T10:32:13.047 に答える