問題タブ [pylucene]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lucene - Lucene:FuzzyQueryを使用して検索内を検索
約800万行を含むインデックスを使用してFuzzyQueryを作成する必要があります。この種のクエリはかなり遅く、一致するたびに約20秒かかります。実際、あいまい検索を実行する前に、別のフィールドを使用して結果を約5000ヒットに絞り込むことができます。これが機能するためには、最初に「より狭い」フィールドで検索を行い、次にそれらの結果内であいまい検索を使用できる必要があります。
lucene FAQによると、私がしなければならないのはBooleanQueryだけです。ここでは、「より狭い」が必要です(lucene 3ではBooleanClause.Occur.MUST)。
今、私は2つの異なるアプローチを試しました。
a)次のような入力でクエリパーサーを使用します。
narrower:+narrowing_text fuzzy:fuzzy_text~0.9
b)TermQueryとFuzzyQueryを使用してBooleanQueryを構築する
どちらも機能しませんでした。ナローを使用しない場合とほぼ同じ時間になります。
また、ナローが機能している場合は時間が大幅に改善されることを確認するために、ナローに一致する5000アイテムのみのインデックスを再作成したところ、検索は非常に高速になりました。
不思議に思う人のために、私はピルセン3.0.2を使用しています。
python - pyLucene のインストール
私はUbuntu 10.04、Python 2.6.5を使用していますが、pyLuceneのインストールに問題があります。
これが私がこれまでに行ったことであり、これらのパッケージをインストールしました-
その後、http://www.apache.org/dyn/closer.cgi/lucene/pylucene/ から pyLucene のソース コードを取得しました。バージョン pylucene-3.0.1-1 を取得しました。
解凍した。JCC を最初に構築する必要があるため。JCCディレクトリに移動してから入力しましたpython setup.py install
。一部の setuptools パッチに関するエラーが発生しました。それは私にこれをするように言った -
sudo patch -d /usr/lib/python2.6/dist-packages -Nup0 < /home/code/python/lucene/pylucene-3.0.1-1/jcc/jcc/patches/patch.43.0.6c11
そして私はしました。しかし、私は端末でこれを取得しました-
今、私のビルドは失敗します-つまり、私がsudo python setup.py build
得るとき-
java - Ubuntu 10.04 への PyLucene 3.0.3 のインストール
Ubuntu 10.04 に PyLucene 3.0.3 をインストールしようとしています。これはかなり困難であることが証明されていますが、これまでのところ、次のことを行っています。
- PyLucene ドキュメントで指示されているように、JCC のビルドを許可するように setuptools にパッチを適用しました。
- JCC のビルド: cd pylucene-3.0.3-1/jcc; python setup.py ビルド
- ant 経由で Lucene 3.0.3 をビルドし、jar を /usr/share/java/lucene-core-3.0.3-dev.jar にインストールしました。Ubuntu のデフォルトの Lucene パッケージが /usr/share/java/lucene-core-2.9.2.jar にインストールされていることに注意してください。これは /usr/share/java/lucene-core.jar にもシンボリック リンクします
現在、PyLucene を「作成」しようとしていますが、エラーが発生します。
ファイル pylucene-3.0.3-1/doc/documentation/install.html には、「環境に合わせて Makefile を編集する」と記載されていますが、それが何を意味するのかわかりません。Makefile には、インストールしたものと同じ Lucene バージョン番号が含まれているようです。PyLucene をビルドするには、makefile を他にどのように編集する必要がありますか?
編集: Ubuntu 8.10 (まじで、8.10?!) でコンパイルするための makefile のセクションのコメントを外した後 (Torsten に感謝)、そのほとんどは正常にコンパイルされたように見えましたが、それでもエラーが発生しました。いくつかのコンポーネントは「BUILD SUCCESSFUL」を報告しましたが、最終的なビルドは次のように終了しました:
lucene - PyLucene での SnowBallAnalyzer の使用
PyLucene で SnowBallAnalyzer を使用しようとしていますが、次のようにインスタンスを作成しようとすると、常に InvalidArgsError というエラーが表示されます。
analyzer = SnowBallAnalyzer("Spanish")
また
analyzer = SnowBallAnalyzer("Spanish", STOPWORDS)
本当に必要なのは、"Fútbol" を検索する場合、"futbol" または "fútbol" という単語を含むドキュメントを取得することです。だから...クエリにインデックスを付けたいテキストにSnowBallAnalyzerを適用したいと思います。
どんな助けでも大歓迎です。
前もって感謝します。
python - Djangoでピルセンを使用する場合、initVMとattachCurrentThreadを実行するのに最適な場所はどこですか
私はdjangoベースのサイトでピルセンを使用していますが、jvmを起動してスレッドを接続するのに最適な場所を誰かが知っているかどうか疑問に思っていました. 誰かがページをロードするたびに新しい jvm を開始する必要はありませんが、検索時にスレッドをアタッチしているときに、django で不可解な「名前をインポートできません」というエラーが時々発生していました。
views.pyにスレッドを付けるのは間違いですか?
編集:私は特に、単一のjvmをインスタンス化して実行したままにして、必要に応じてスレッドをアタッチできるようにする方法を探しています。jvm のインスタンス化には約 2 秒かかり、これは検索時の顕著な遅延です。
python - PythonTokenStreamを使用したPyLuceneカスタムTokenStream
PythonシーケンスからTokenStreamを構築しようとしています。楽しみのために、自分のトークンを直接に渡すことができるようにしたいと思います
「MyTokenStream」を作ってみました...
しかし、残念ながら、「TermAttribute」のラッパーは存在しません。さらに言えば、luceneの他のAttribute
クラスは存在しないため、それらを呼び出すとNotImplementedエラーが発生します。
これは例外を発生させません-しかし、それが条件を設定しているのかどうかはわかりません。
python - pylucene:インストールエラー
質問の更新:
ありがとうFavoretti!
apt-getを使用してjccをインストールすると、pyluceneの下のmakefileが少し実行され、Javaエラーがスローされましたが、手がかりがありません。ここにあります。エラーを教えてください。
python - Lucene 自動インデクサー
Lucene の学習を始めたばかりで、ハード ドライブと電子メールのインデックス作成に使用したいと考えています。Lucene にそれを支援する何かがあるのか 、それとも変更を監視する何らかのオブザーバーを構築する必要があるのか 疑問に思っています次のセクションで説明されているように、ハード ドライブ内: Python を使用してファイルの変更を監視するにはどうすればよいですか?
ありがとう