私は検索インデックスを持っており、指定されたフィールドを条件付きで検索するluceneクエリが必要です。最終的な結果は、Webサイトにログインしている場合はすべてのフィールドが検索されるか、またはログアウトしている場合は、指定されたフィールドはluceneクエリを変更することによってスキップされます。Lucene - 検索対象から除外するフィールド
現時点で私が持っている最も近いです:
+(term1~ term2~) +_culture:([en-gb TO en-gb] [invariantifieldivaluei TO invariantifieldivaluei]) **-FieldToIgnore1:(term1 term2) -FieldToIgnore2:(term1 term2)**
検索語のいずれかが(FieldToIgnore1またはFieldToIgnore2)を言及していない分野の一つに存在する場合これに伴う問題は、しかし、その後、文書はされています無視するフィールドの1つが一致したため除外されているため無視されます。
luceneが無視するフィールドと一致しないように、これをどのように変更できますか?
私は理解できません。一般に、フィールドを無視するのは簡単です。あなたはそのフィールドで*検索しません。あなたは 'MultiFieldQueryParser'か何かを使っていますか?または、デフォルトの検索フィールドは何らかの種類のキャッチオールフィールドですか?または何? – femtoRgon
謝罪 - 私はLuceneの用語に慣れていませんが、キャッチオールフィールドオプションだと思います。この機能は[Lucent query parser syntax](http://lucene.apache)を使用する[Kentico CMSのスマート検索](https://docs.kentico.com/display/K9/Smart+search+syntax)で構築されています。 .org/core/3_0_3/queryparsersyntax.html)それが役立つかどうか? – ajbrun
その場合、一致するフィールドがどのフィールドから来ているのかを判断する方法がない可能性があります。その "すべての"フィールドは単なる言葉の大きな袋になるだろう。必要なフィールドのみを検索するためにクエリを書く必要があります(または、検索したいフィールドだけを組み合わせた別の検索フィールドをインデックスするかもしれません)。しかし、私はKenticoについて何も知らないので、あなたの索引などのチューニングをサポートしているかどうかはわかりません。 – femtoRgon