У меня есть архив ~ 50 M Tweets. Я хочу посмотреть, будут ли другие пользователи упоминать друг друга. Есть проблемы: есть учетная запись под названием facebook (www.twitter.com/facebook). Я хочу найти те твиты, которые упоминают эту учетную запись, и не просто сказать facebook.solr sunspot Точный поиск слов
Так что мой синтаксис с помощью солнечных пятен является:
search = FeedEntry.search do
without(:person_id,person.id) # No self referencing
fulltext "@#{person.username}" #Find those Feeds that mention this person
paginate :page => 1, :per_page => 1000000 #Make sure we dont paginate
end
Solr, кажется, пренебрегать @ знак полностью и даже при поиске ввода имени пользователя в «» или «» это не имеет значения.
search = FeedEntry.search{fulltext "facebook -RT"}
=> <Sunspot::Search:{:start=>0, :defType=>"dismax", :fq=>["type:FeedEntry"], :rows=>30, :q=>"facebook -RT", :fl=>"* score", :qf=>"retweeters_text text_text"}>
>> search.total
=> 299525
Что я могу сделать? Я должен пройти эти результаты и использовать ruby «include?» @facebook », чтобы разобраться с ложными срабатываниями, которые занимают много времени.
У меня есть подозрение, что это связано с фабриками токенизатора, которые я использую: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.KeywordTokenizerFactory
Мой конфиг в schema.xml является:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Я думаю, что изменение StandardTokenizerFactory к WhitespaceTokenizerFactory бы помочь в моем случае Btw есть способ, чтобы увидеть, какие жетоны этих заводов, производимых на моем корпусе.. ?
Мой последний вопрос: нужна ли переиндексация после изменения токенизатора? Мое предположение - да.
Приветствие Томас
Вы правы Я могу создать для них соответствующие поля db и сохранить их в качестве дополнительных данных для твита. Кажется, что и то, что делает Twitter, так как они могут сообщите " сущности ", упомянутые в твитах. Большое спасибо! – plotti