多くのグーグル検索の後、誰かが私を助けてくれることを期待して、ここに問題を投稿することにしました。私が達成したいのは、次のようにクエリを実行することです。
q1: (adjective) "jumps" (preposition) // any adj followed by "jumps" followed by any prep.
q2: (adjective:brown) "jumps" (preposition) // brown as adj. followed by "jumps" followed by any prep.
q3: (adjective:brown) (verb:jumps) (preposition) // brown as adj followed by jumps as verb followed by any preposition.
より一般的な形で、私が欲しいのは
(POS[:specific_word]) (POS[:specific_word]) (POS[:specific_word])
そのために、次のようにタグ付けされたテキストがあります。
the|[pos:DT][lemma:the] quick|[pos:JJ][lemma:quick] brown|[pos:JJ][lemma:brown] fox|[pos:NN][lemma:fox] jumps|[pos:NNS][lemma:jump] over|[pos:IN][lemma:over] the|[pos:DT][lemma:the] lazy|[pos:JJ][lemma:lazy] dog|[pos:NN][lemma:dog]
私が最初に考えたのは、各用語の追加情報をペイロードとしてインデックス化し、その後、各スパンのペイロードにアクセスするために PayloadNearQuery を使用することでした。問題は、PayloadNearQuery が最初に用語に一致してからそのペイロードにアクセスするため、上記の 3 つのクエリのいずれも機能しないことです。(間違っていたら訂正してください)
私が考えた2番目のことは、余分な情報を用語の同義語として索引付けすることでしたが、この方法では、最初の用語がadjであり、特定の単語「茶色」であるかどうかを同時に尋ねることができないため、2番目のクエリは機能しません.
この問題に対処する方法、提案などをいただければ幸いです。