研究論文のインデックスを作成しています。各論文には、タイトル、著者、要約テキスト、出版年、参考文献の記事の ID などのフィールドがあります。引用に基づくいくつかのクエリを効率的に組み合わせる必要があります。記事間のリンク。
編集:典型的な例では、次のような記事を探しているかもしれません:
+(title:preterm abstract:preterm)
でも、何度も引用されている記事を後押ししたい。したがって、記事ごとA
に、 のようなクエリで記事を引用しているすべての記事を収集し、に追加する新しいフィールドでその+bibliography:A
ような記事の数をインデックス化できます。次に、FunctionQuery、IntFieldSource、および BoostedQuery を使用してクエリに引用カウント ブーストを追加し、次のようにします。citationCount
A
+(title:preterm abstract:preterm)
+boost(int(citationCount), const(0.1))
また、記事を引用する記事で使用されている用語に基づいて記事を宣伝したいと考えています。したがって、上記のように、A
のようなクエリで引用するすべての記事を収集し、bibliography:A
すべてのタイトルと要約用語を新しいものとしてインデックス化し、に追加さcitingTitles
れcitingAbstracts
たフィールドにすることができA
ます。次に、次のようなクエリを作成することで、引用用語に基づいてクエリをブーストできます。
+(title:preterm abstract:preterm)
+boost((citingTitles:preterm citingAbstracts:preterm), const(0.5))
年の制限が必要になるまで、これはすべて正常に機能します。たとえば、1990 年より前に発生した引用に基づいてクエリをブーストするだけでよい場合があります。基本的には、次のようなものが必要です。
+(title:preterm abstract:preterm)
+boost(int(citationCountBefore1990), const(0.1))
+boost((citingTitlesBefore1990:preterm citingAbstractsBefore1990:preterm), const(0.5))
しかし、文字通りこのアプローチに従って各XXXBeforeXXX
フィールドを作成すると (たとえば、 のようなクエリを使用して) 、+bibliography:A +year:[* TO XXX]
膨大な重複が必要になります。citingAbstractsBeforeXXX
citingAbstractsBeforeXXX+1
citingAbstractsBeforeXXX+2
この重複を回避しながら、クエリを高速に保つにはどうすればよいですか?
編集:おそらく、クエリ時間結合でこれを行う方法がありますか? この問題は少し結合のように感じますが、それがどのように機能するかはすぐにはわかりません。